Mention the fix for bug #4079.
[rsync/rsync.git] / NEWS
diff --git a/NEWS b/NEWS
index d9084ea..f3730c2 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -7,21 +7,10 @@ Changes since 2.6.8:
     - If rsync is interrupted via a handled signal (such as SIGINT), it will
       once again clean-up its temp file from the destination dir.
 
     - If rsync is interrupted via a handled signal (such as SIGINT), it will
       once again clean-up its temp file from the destination dir.
 
-    - An rsync daemon that is receiving files with "use chroot = no" no longer
-      sanitizes the symlink target strings (by default).  This means that each
-      symlink's value will now be accepted (and thus returned) with its symlink
-      info intact.  Also, in order to keep things safe, all arg paths and any
-      dereferenced symlinks (e.g. via --copy-links or --keep-dirlinks) are
-      manually verified to ensure that no symlinks try to escape past the top
-      of the module's path.  These changes make a non-chroot daemon behave the
-      same way as a chroot daemon with regard to symlinks, and also avoids a
-      potential problem where a pre-existing symlink could have escaped the
-      module's hierarchy.  See also the new "munge symlinks" daemon setting.
-
     - Fixed an overzealous sanitizing bug in the handling of the --link-dest,
       --copy-dest, and --compare-dest options to a daemon without chroot: if
       the copy's destination dir is deeper than the top of the module's path,
     - Fixed an overzealous sanitizing bug in the handling of the --link-dest,
       --copy-dest, and --compare-dest options to a daemon without chroot: if
       the copy's destination dir is deeper than the top of the module's path,
-      these options now accept a safe number of ../ (parent-dir) references
+      these options now accept a safe number of parent-dir (../) references
       (since these options are relative to the destination dir).  The old code
       incorrectly chopped off all "../" prefixes for these options, no matter
       how deep the destination directory was in the module's hierarchy.
       (since these options are relative to the destination dir).  The old code
       incorrectly chopped off all "../" prefixes for these options, no matter
       how deep the destination directory was in the module's hierarchy.
@@ -34,6 +23,15 @@ Changes since 2.6.8:
       process.  (These problems could only affect an rsync daemon that was
       receiving files.)
 
       process.  (These problems could only affect an rsync daemon that was
       receiving files.)
 
+    - Fixed a bug when --inplace was combined with a --*-dest option and we
+      update a file's data using an alternate basis file.  The code now
+      notices that it needs to copy the matching data from the basis file
+      instead of (wrongly) assuming that it was already present in the file.
+
+    - Fixed a bug where using --dry-run with a --*-dest option with a path
+      relative to a directory that does not yet exist:  the affected option
+      gets its proper path value so that the output of the dry-run is right.
+
     - Fixed a bug in the %f logfile escape when receiving files: the
       destination path is now included in the output (e.g. you can now tell
       when a user specifies a subdir inside a module).
     - Fixed a bug in the %f logfile escape when receiving files: the
       destination path is now included in the output (e.g. you can now tell
       when a user specifies a subdir inside a module).
@@ -41,9 +39,6 @@ Changes since 2.6.8:
     - If the receiving side fails to create a directory, it will now skip
       trying to update everything that is inside that directory.
 
     - If the receiving side fails to create a directory, it will now skip
       trying to update everything that is inside that directory.
 
-    - Make sure that the --link-dest option can still do its job even when -I
-      is specified.
-
     - If --link-dest is specified with --checksum but without --times, rsync
       will now allow a hard-link to be created to a matching link-dest file
       even when the file's modify-time doesn't match the server's file.
     - If --link-dest is specified with --checksum but without --times, rsync
       will now allow a hard-link to be created to a matching link-dest file
       even when the file's modify-time doesn't match the server's file.
@@ -76,6 +71,17 @@ Changes since 2.6.8:
     - If either --remove-source-files or --remove-sent-files is enabled and we
       are unable to remove the source file, rsync now outputs an error.
 
     - If either --remove-source-files or --remove-sent-files is enabled and we
       are unable to remove the source file, rsync now outputs an error.
 
+    - Fixed a bug in the daemon's "incoming chmod" rule:  newly-created
+      directories no longer get the 'F' (file) rules applied to them.
+
+    - Fixed an infinite loop bug when a filter rule was rejected due to being
+      overly long.
+
+    - When the server receives a --partial-dir option from the client, it no
+      longer runs the client-side code that adds an assumed filter rule (since
+      the client will be sending us the rules in the usual manner, and they
+      may have chosen to override the auto-added rule).
+
   ENHANCEMENTS:
 
     - Added the --log-file=FILE and --log-file-format=FORMAT options.  These
   ENHANCEMENTS:
 
     - Added the --log-file=FILE and --log-file-format=FORMAT options.  These
@@ -91,10 +97,6 @@ Changes since 2.6.8:
     - Made "log file" and "syslog facility" settable on a per-module basis in
       the daemon's config file.
 
     - Made "log file" and "syslog facility" settable on a per-module basis in
       the daemon's config file.
 
-    - Added the "munge symlinks" daemon setting to enable the old-style
-      tweaking of "unsafe" symlinks, but it can now be consistently applied
-      regardless of how "use chroot" is set.
-
     - Added the --remove-source-files option as a replacement for the (now
       deprecated) --remove-sent-files option.  This new option removes all
       non-dirs from the source directories, even if the file was already
     - Added the --remove-source-files option as a replacement for the (now
       deprecated) --remove-sent-files option.  This new option removes all
       non-dirs from the source directories, even if the file was already
@@ -104,15 +106,45 @@ Changes since 2.6.8:
       (The deprecated --remove-sent-files is still understood for now, and
       still behaves in the same way as before.)
 
       (The deprecated --remove-sent-files is still understood for now, and
       still behaves in the same way as before.)
 
+    - Added the option --no-motd to suppress the message-of-the-day output
+      from a daemon when doing a copy.  (See the manpage for a caveat.)
+
     - Added a new environment variable to the pre-/post-xfer exec commands (in
       the daemon's config file):  RSYNC_PID.  This value will be the same in
       both the pre- and post-xfer commands, so it can be used if the pre-xfer
       command wants to cache some arg/request info for the post-xfer command.
 
     - Added a new environment variable to the pre-/post-xfer exec commands (in
       the daemon's config file):  RSYNC_PID.  This value will be the same in
       both the pre- and post-xfer commands, so it can be used if the pre-xfer
       command wants to cache some arg/request info for the post-xfer command.
 
+  INTERNAL:
+
+    - Did a code audit using IBM's code-checker program and made several
+      changes, including: replacing most of the strcpy() and sprintf()
+      calls with strlcpy(), snprintf(), and memcpy(), adding a 0-value to
+      an enum that had been intermingling a literal 0 with the defined enum
+      values, silencing some uninitialized memory checks, marking some
+      functions with a "noreturn" attribute, and changing an "if" that
+      could never succeed on some platforms into a pre-processor directive
+      that conditionally compiles the code.
+
+    - Fixed a potential bug in f_name_cmp() when both the args are a
+      top-level "." dir (which doesn't happen in normal operations).
+
+    - Changed exit_cleanup() so that it can never return instead of exit.
+      The old code might return if it found the exit_cleanup() function
+      was being called recursively.  The new code is segmented so that
+      any recursive calls move on to the next step of the exit-processing.
+
+    - The macro WIFEXITED(stat) will now be defined if the OS didn't already
+      define it.
+
   DEVELOPER RELATED:
 
     - The acls.diff and xattrs.diff patches have received a bunch of work to
       make them much closer to being acceptable in the main distribution.
   DEVELOPER RELATED:
 
     - The acls.diff and xattrs.diff patches have received a bunch of work to
       make them much closer to being acceptable in the main distribution.
+      The xattrs patch also has some preliminary Mac OS X compatibility code
+      that allows Macs and non-macs to exchange extended attributes.
+
+    - The rsync.yo and rsyncd.conf.yo files have been updated to work
+      better with the latest yodl 2.x releases.
 
     - Updated config.guess and config.sub to their 2006-02-23 version.
 
 
     - Updated config.guess and config.sub to their 2006-02-23 version.