Mention the latest bugfix.
[rsync/rsync.git] / NEWS
1 NEWS for rsync 2.6.9 (unreleased)
2 Protocol: 29 (unchanged)
3 Changes since 2.6.8:
4
5   BUG FIXES:
6
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
10     - An rsync daemon that is receiving files with "use chroot = no" no longer
11       sanitizes the symlink target strings (by default).  This means that each
12       symlink's value will now be accepted (and thus returned) with its symlink
13       info intact.  Also, in order to keep things safe, all arg paths and any
14       dereferenced symlinks (e.g. via --copy-links or --keep-dirlinks) are
15       manually verified to ensure that no symlinks try to escape past the top
16       of the module's path.  These changes make a non-chroot daemon behave the
17       same way as a chroot daemon with regard to symlinks, and also avoids a
18       potential problem where a pre-existing symlink could have escaped the
19       module's hierarchy.  See also the new "munge symlinks" daemon setting.
20
21     - Fixed an overzealous sanitizing bug in the handling of the --link-dest,
22       --copy-dest, and --compare-dest options to a daemon without chroot: if
23       the copy's destination dir is deeper than the top of the module's path,
24       these options now accept a safe number of ../ (parent-dir) references
25       (since these options are relative to the destination dir).  The old code
26       incorrectly chopped off all "../" prefixes for these options, no matter
27       how deep the destination directory was in the module's hierarchy.
28
29     - Fixed a bug where a deferred info/error/log message could get sent
30       directly to the sender instead of being handled by rwrite() in the
31       generator.  This fixes an "unexpected tag 3" fatal error, and should
32       also fix a potential problem where a deferred info/error message from
33       the receiver might bypass the log file and get sent only to the client
34       process.  (These problems could only affect an rsync daemon that was
35       receiving files.)
36
37     - Fixed a bug in the %f logfile escape when receiving files: the
38       destination path is now included in the output (e.g. you can now tell
39       when a user specifies a subdir inside a module).
40
41     - If the receiving side fails to create a directory, it will now skip
42       trying to update everything that is inside that directory.
43
44     - Make sure that the --link-dest option can still do its job even when -I
45       is specified.
46
47     - If --link-dest is specified with --checksum but without --times, rsync
48       will now allow a hard-link to be created to a matching link-dest file
49       even when the file's modify-time doesn't match the server's file.
50
51     - The daemon now calls more timezone-using functions prior to doing a
52       chroot.  This should help some C libraries to generate proper timestamps
53       from inside a chrooted daemon (and to not try to access /etc/timezone
54       over and over again).
55
56     - Fixed a bug in the handling of an absolute --partial-dir=ABS_PATH option:
57       it now deletes an alternate basis file from the partial-dir that was used
58       to successfully update a destination file.
59
60     - Fixed a bug in the handling of --delete-excluded when using a per-dir
61       merge file:  the merge file is now honored on the receiving side, and
62       only its unqualified include/exclude commands are ignored (just as is
63       done for global include/excludes).
64
65     - Fixed a recent bug where --delete was not working when transferring from
66       the root (/) of the filesystem with --relative enabled.
67
68     - Fixed a recent bug where an --exclude='*' could affect the root (/) of
69       the filesystem with --relative enabled.
70
71     - When --inplace creates a file, it is now created with owner read/write
72       permissions (0600) instead of no permissions at all.  This avoids a
73       problem continuing a transfer that was interrupted (since --inplace
74       will not update a file that has no write permissions).
75
76     - If either --remove-source-files or --remove-sent-files is enabled and we
77       are unable to remove the source file, rsync now outputs an error.
78
79     - Fixed a bug in the daemon's "incoming chmod" rule: newly-created
80       directories no longer get the 'F' (file) rules applied to them.
81
82   ENHANCEMENTS:
83
84     - Added the --log-file=FILE and --log-file-format=FORMAT options.  These
85       can be used to tell any rsync to output what it is doing to a log file.
86       They work with a client rsync, a non-daemon server rsync (see the man
87       page for instructions), and also allows the overriding of rsyncd.conf
88       settings when starting a daemon.
89
90     - The --log-format option was renamed to be --out-format to avoid confusing
91       it with affecting the log-file output.  (The old option remains as an
92       alias for the new to preserve backward compatibility.)
93
94     - Made "log file" and "syslog facility" settable on a per-module basis in
95       the daemon's config file.
96
97     - Added the "munge symlinks" daemon setting to enable the old-style
98       tweaking of "unsafe" symlinks, but it can now be consistently applied
99       regardless of how "use chroot" is set.
100
101     - Added the --remove-source-files option as a replacement for the (now
102       deprecated) --remove-sent-files option.  This new option removes all
103       non-dirs from the source directories, even if the file was already
104       up-to-date.  This fixes a problem where interrupting an rsync that
105       was using --remove-sent-files and restarting it could leave behind
106       a file that the earlier rsync synchronized, but didn't get to remove.
107       (The deprecated --remove-sent-files is still understood for now, and
108       still behaves in the same way as before.)
109
110     - Added a new environment variable to the pre-/post-xfer exec commands (in
111       the daemon's config file):  RSYNC_PID.  This value will be the same in
112       both the pre- and post-xfer commands, so it can be used if the pre-xfer
113       command wants to cache some arg/request info for the post-xfer command.
114
115   DEVELOPER RELATED:
116
117     - The acls.diff and xattrs.diff patches have received a bunch of work to
118       make them much closer to being acceptable in the main distribution.
119
120     - Updated config.guess and config.sub to their 2006-02-23 version.
121
122     - Updated various files to include the latest FSF address and to have
123       consistent opening comments.