Mention the addition of the fake-super.diff patch.
[rsync/rsync.git] / NEWS
CommitLineData
60ef8ed1 1NEWS for rsync 2.6.9 (unreleased)
3ae6c187 2Protocol: 29 (unchanged)
60ef8ed1 3Changes since 2.6.8:
36f59b58 4
ac1541f4
WD
5 BUG FIXES:
6
eece5fe3
WD
7 - If rsync is interrupted via a handled signal (such as SIGINT), it will
8 once again clean-up its temp file from the destination dir.
9
a17e119d
WD
10 - Fixed an overzealous sanitizing bug in the handling of the --link-dest,
11 --copy-dest, and --compare-dest options to a daemon without chroot: if
12 the copy's destination dir is deeper than the top of the module's path,
242f6052 13 these options now accept a safe number of parent-dir (../) references
a17e119d 14 (since these options are relative to the destination dir). The old code
5fdbb87d 15 incorrectly chopped off all "../" prefixes for these options, no matter
45ba206a 16 how deep the destination directory was in the module's hierarchy.
d8bf7ea8 17
bdac7621
WD
18 - Fixed a bug where a deferred info/error/log message could get sent
19 directly to the sender instead of being handled by rwrite() in the
20 generator. This fixes an "unexpected tag 3" fatal error, and should
21 also fix a potential problem where a deferred info/error message from
22 the receiver might bypass the log file and get sent only to the client
23 process. (These problems could only affect an rsync daemon that was
24 receiving files.)
8ac47746 25
0cbb958f
WD
26 - Fixed a bug when --inplace was combined with a --*-dest option and we
27 update a file's data using an alternate basis file. The code now
28 notices that it needs to copy the matching data from the basis file
29 instead of (wrongly) assuming that it was already present in the file.
30
242f6052
WD
31 - Fixed a bug where using --dry-run with a --*-dest option with a path
32 relative to a directory that does not yet exist: the affected option
33 gets its proper path value so that the output of the dry-run is right.
34
72d1b262
WD
35 - Fixed a bug in the %f logfile escape when receiving files: the
36 destination path is now included in the output (e.g. you can now tell
37 when a user specifies a subdir inside a module).
38
4c5a2da6
WD
39 - If the receiving side fails to create a directory, it will now skip
40 trying to update everything that is inside that directory.
41
a17e119d
WD
42 - If --link-dest is specified with --checksum but without --times, rsync
43 will now allow a hard-link to be created to a matching link-dest file
eece5fe3 44 even when the file's modify-time doesn't match the server's file.
08c0cd8a 45
5fdbb87d 46 - The daemon now calls more timezone-using functions prior to doing a
45ba206a
WD
47 chroot. This should help some C libraries to generate proper timestamps
48 from inside a chrooted daemon (and to not try to access /etc/timezone
49 over and over again).
5fdbb87d 50
5bc933a2
WD
51 - Fixed a bug in the handling of an absolute --partial-dir=ABS_PATH option:
52 it now deletes an alternate basis file from the partial-dir that was used
53 to successfully update a destination file.
54
40f910c4
WD
55 - Fixed a bug in the handling of --delete-excluded when using a per-dir
56 merge file: the merge file is now honored on the receiving side, and
57 only its unqualified include/exclude commands are ignored (just as is
58 done for global include/excludes).
59
60 - Fixed a recent bug where --delete was not working when transferring from
61 the root (/) of the filesystem with --relative enabled.
62
63 - Fixed a recent bug where an --exclude='*' could affect the root (/) of
64 the filesystem with --relative enabled.
65
dde698c2
WD
66 - When --inplace creates a file, it is now created with owner read/write
67 permissions (0600) instead of no permissions at all. This avoids a
68 problem continuing a transfer that was interrupted (since --inplace
69 will not update a file that has no write permissions).
70
2edfe522
WD
71 - If either --remove-source-files or --remove-sent-files is enabled and we
72 are unable to remove the source file, rsync now outputs an error.
73
242f6052 74 - Fixed a bug in the daemon's "incoming chmod" rule: newly-created
ed4b8da0
WD
75 directories no longer get the 'F' (file) rules applied to them.
76
4968423e
WD
77 - Fixed an infinite loop bug when a filter rule was rejected due to being
78 overly long.
79
b4f02871
WD
80 - When the server receives a --partial-dir option from the client, it no
81 longer runs the client-side code that adds an assumed filter rule (since
82 the client will be sending us the rules in the usual manner, and they
83 may have chosen to override the auto-added rule).
84
ac1541f4
WD
85 ENHANCEMENTS:
86
051f5df5
WD
87 - Added the --log-file=FILE and --log-file-format=FORMAT options. These
88 can be used to tell any rsync to output what it is doing to a log file.
89 They work with a client rsync, a non-daemon server rsync (see the man
90 page for instructions), and also allows the overriding of rsyncd.conf
91 settings when starting a daemon.
92
93 - The --log-format option was renamed to be --out-format to avoid confusing
94 it with affecting the log-file output. (The old option remains as an
95 alias for the new to preserve backward compatibility.)
8b3e964d 96
d2ab094d
WD
97 - Made "log file" and "syslog facility" settable on a per-module basis in
98 the daemon's config file.
99
c2b47e31
WD
100 - Added the --remove-source-files option as a replacement for the (now
101 deprecated) --remove-sent-files option. This new option removes all
102 non-dirs from the source directories, even if the file was already
103 up-to-date. This fixes a problem where interrupting an rsync that
104 was using --remove-sent-files and restarting it could leave behind
105 a file that the earlier rsync synchronized, but didn't get to remove.
106 (The deprecated --remove-sent-files is still understood for now, and
107 still behaves in the same way as before.)
108
50dfd5b4
WD
109 - Added the option --no-motd to suppress the message-of-the-day output
110 from a daemon when doing a copy. (See the manpage for a caveat.)
111
40f910c4
WD
112 - Added a new environment variable to the pre-/post-xfer exec commands (in
113 the daemon's config file): RSYNC_PID. This value will be the same in
114 both the pre- and post-xfer commands, so it can be used if the pre-xfer
115 command wants to cache some arg/request info for the post-xfer command.
8adc22e3 116
4968423e
WD
117 INTERNAL:
118
2a6e35db 119 - Did a code audit using IBM's code-checker program and made several
8ee68577 120 changes, including: replacing most of the strcpy() and sprintf()
2a6e35db
WD
121 calls with strlcpy(), snprintf(), and memcpy(), adding a 0-value to
122 an enum that had been intermingling a literal 0 with the defined enum
123 values, silencing some uninitialized memory checks, marking some
124 functions with a "noreturn" attribute, and changing an "if" that
125 could never succeed on some platforms into a pre-processor directive
126 that conditionally compiles the code.
4968423e
WD
127
128 - Fixed a potential bug in f_name_cmp() when both the args are a
129 top-level "." dir (which doesn't happen in normal operations).
130
131 - Changed exit_cleanup() so that it can never return instead of exit.
132 The old code might return if it found the exit_cleanup() function
2a6e35db
WD
133 was being called recursively. The new code is segmented so that
134 any recursive calls move on to the next step of the exit-processing.
4968423e 135
418da6d9
WD
136 - The macro WIFEXITED(stat) will now be defined if the OS didn't already
137 define it.
138
7c329ec7
WD
139 DEVELOPER RELATED:
140
d8bf7ea8
WD
141 - The acls.diff and xattrs.diff patches have received a bunch of work to
142 make them much closer to being acceptable in the main distribution.
51d133d6
WD
143 The xattrs patch also has some preliminary Mac OS X compatibility code
144 that allows Macs and non-macs to exchange extended attributes.
d8bf7ea8 145
ab6dcad6
WD
146 - A new diff in the patches dir, fake-root.diff, allows rsync to
147 maintain a backup hierarchy with full owner, group, and device info
148 without actually running as root. It does this using a special
149 extended attribute, so it depends on xattrs.diff (which depends on
150 acls.diff).
151
4968423e
WD
152 - The rsync.yo and rsyncd.conf.yo files have been updated to work
153 better with the latest yodl 2.x releases.
154
60ef8ed1 155 - Updated config.guess and config.sub to their 2006-02-23 version.
d8bf7ea8
WD
156
157 - Updated various files to include the latest FSF address and to have
158 consistent opening comments.