Pass "new_mode" to set_acl() and change its return values.
[rsync.git] / NEWS
1 NEWS for rsync 3.0.8 (UNRELEASED)
2 Protocol: 30 (unchanged)
3 Changes since 3.0.7:
4
5   BUG FIXES:
6
7     - Fixed two buffer-overflow issues: one where a directory path that is
8       exactly MAXPATHLEN was not handled correctly, and one handling a
9       --backup-dir that is extra extra large.
10
11     - Fixed a data-corruption issue when preserving hard-links without
12       preserving file ownership, and doing deletions either before or during
13       the transfer.  This fixes some assert errors in the hard-linking code,
14       and some potential failed checksums (via -c) that should have matched.
15
16     - Fixed a potential crash when an rsync daemon has a filter/exclude list
17       and the transfer is using ACLs or xattrs.
18
19     - Fixed a hang if a really large file is being processed by an rsync that
20       can't handle 64-bit numbers.  Rsync will now complain about the file
21       being too big and skip it.
22
23     - For devices and special files, we now avoid gathering useless ACL and/or
24       xattr information for files that aren't being copied.  (The uncopied
25       files are still put into the file list, but there's no need to gather
26       data that is not going to be used.)  This ensures that if the user uses
27       --no-D, that rsync can't possibly complain about being unable to gather
28       extended information from special files that are in the file list (but
29       not in the transfer).
30
31     - Properly handle requesting remote filenames that start with a dash.  This
32       avoids a potential error where a filename could be interpreted as a
33       (usually invalid) option.
34
35     - Fixed a bug in the comparing of upper-case letters in file suffixes for
36       --skip-compress.
37
38     - If an rsync daemon has a module configured without a path setting, rsync
39       will now disallow access to that module.
40
41     - If the destination arg is an empty string, it will be treated as a
42       reference to the current directory (as 2.x used to do).
43
44     - Fixed a batch-file writing bug that would not write out the full set of
45       compatibility flags that the transfer was using.  This fixes a potential
46       protocol problem for a batch file that contains a sender-side I/O error:
47       it would have been sent in a way that the batch-reader wasn't expecting.
48
49     - Some improvements to the hard-linking code to ensure that device-number
50       hashing is working right, and to supply more information if the hard-link
51       code fails.
52
53     - The --inplace code was improved to not search for an impossible checksum
54       position.  The quadruple-verbose chunk[N] message will now mention when
55       an inplace chunk was handled by a seek rather than a read+write.
56
57     - If we fail to connect to an rsync daemon, report all the connection
58       errors (e.g. IPv4 & IPv6), not just the last one.
59
60     - Fixed an issue where an xattr and/or ACL transfer that used an alt-dest
61       option (e.g. --link-dest) could output an error trying to itemize the
62       changes against the alt-dest directory's xattr/ACL info but was instead
63       trying to access the not-yet-existing new destination directory.
64
65     - Improved xattr system-error messages to mention the full path to the
66       file.
67
68     - Avoid trying to read/write xattrs on certain file types for certain OSes.
69       Improved configure to set NO_SYMLINK_XATTRS, NO_DEVICE_XATTRS, and/or
70       NO_SPECIAL_XATTRS defines in config.h.
71
72     - Improved the unsafe-symlink errors messages.
73
74     - Fixed a bug setting xattrs on new files that aren't user writable.
75
76     - Fixed a bug with --fake-super when copying files and dirs that aren't
77       user writable.
78
79     - If a temp-file name is too long, rsync now avoids truncating the name in
80       the middle of adjacent high-bit characters.  This prevents a potential
81       filename error if the filesystem doesn't allow a name to contain an
82       invalid multi-byte sequence.
83
84     - If a muli-protocol socket connection fails (i.e., when contacting a
85       daemon), we now report all the failures, not just the last one.  This
86       avoids losing a relevant error (e.g. an IPv4 connection-refused error)
87       that happened before the final error (e.g. an IPv6 protocol-not-supported
88       error).
89
90     - Fix the popt arg parsing so that an option that doesn't take an arg will
91       reject an attempt to supply one.
92
93     - A couple minor option tweaks to support/rrsync script, and also some
94       regex changes that make vim highlighting happier.
95
96     - Fixed some issues in the support/mnt-excl script.
97
98     - A few manpage improvements.
99
100   ENHANCEMENTS:
101
102     - Added ".hg/" to the default cvs excludes (see -C & --cvs-exclude).
103
104   DEVELOPER RELATED:
105
106     - Use lchmod() whenever it is available (not just on symlinks).
107
108     - A couple fixes to the socketpair_tcp() routine.
109
110     - Updated the helper scripts in the packaging subdirectory.
111
112     - Renamed configure.in to configure.ac.