Commit | Line | Data |
---|---|---|
0c6d7952 | 1 | NEWS for rsync 2.6.9 (6 Nov 2006) |
3ae6c187 | 2 | Protocol: 29 (unchanged) |
60ef8ed1 | 3 | Changes 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. |