Got rid of the recent paranoid length check because it didn't help
[rsync/rsync.git] / NEWS
diff --git a/NEWS b/NEWS
index 0d5ced6..50e12ac 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -4,21 +4,13 @@ Changes since 2.6.8:
 
   BUG FIXES:
 
 
   BUG FIXES:
 
-    - An rsync daemon that is receiving files with "use chroot = no" no longer
-      sanitizes the symlink target strings.  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.
+    - If rsync is interrupted via a handled signal (such as SIGINT), it will
+      once again clean-up its temp file from the destination dir.
 
     - 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.
@@ -31,12 +23,20 @@ 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.)
 
-    - Make sure that the --link-dest option can still do its job even when -I
-      is specified.
+    - 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).
+
+    - If the receiving side fails to create a directory, it will now skip
+      trying to update everything that is inside that directory.
 
     - 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
 
     - 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
-      regardless of the file's modify-time.
+      even when the file's modify-time doesn't match the server's file.
 
     - The daemon now calls more timezone-using functions prior to doing a
       chroot.  This should help some C libraries to generate proper timestamps
 
     - The daemon now calls more timezone-using functions prior to doing a
       chroot.  This should help some C libraries to generate proper timestamps
@@ -47,12 +47,56 @@ Changes since 2.6.8:
       it now deletes an alternate basis file from the partial-dir that was used
       to successfully update a destination file.
 
       it now deletes an alternate basis file from the partial-dir that was used
       to successfully update a destination file.
 
+    - Fixed a bug in the handling of --delete-excluded when using a per-dir
+      merge file:  the merge file is now honored on the receiving side, and
+      only its unqualified include/exclude commands are ignored (just as is
+      done for global include/excludes).
+
+    - Fixed a recent bug where --delete was not working when transferring from
+      the root (/) of the filesystem with --relative enabled.
+
+    - Fixed a recent bug where an --exclude='*' could affect the root (/) of
+      the filesystem with --relative enabled.
+
+    - When --inplace creates a file, it is now created with owner read/write
+      permissions (0600) instead of no permissions at all.  This avoids a
+      problem continuing a transfer that was interrupted (since --inplace
+      will not update a file that has no write permissions).
+
+    - 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.
+
   ENHANCEMENTS:
 
   ENHANCEMENTS:
 
-    - Added the --log-file=FILE option that can be used to tell any rsync to
-      output what it is doing to a log file.  This works with a client rsync, a
-      non-daemon server rsync (see the man page for instructions), and also
-      allows the overriding of the rsyncd.conf setting when starting a daemon.
+    - Added the --log-file=FILE and --log-file-format=FORMAT options.  These
+      can be used to tell any rsync to output what it is doing to a log file.
+      They work with a client rsync, a non-daemon server rsync (see the man
+      page for instructions), and also allows the overriding of rsyncd.conf
+      settings when starting a daemon.
+
+    - The --log-format option was renamed to be --out-format to avoid confusing
+      it with affecting the log-file output.  (The old option remains as an
+      alias for the new to preserve backward compatibility.)
+
+    - Made "log file" and "syslog facility" settable on a per-module basis in
+      the daemon's config file.
+
+    - 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
+      up-to-date.  This fixes a problem where interrupting an rsync that
+      was using --remove-sent-files and restarting it could leave behind
+      a file that the earlier rsync synchronized, but didn't get to remove.
+      (The deprecated --remove-sent-files is still understood for now, and
+      still behaves in the same way as before.)
+
+    - 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.
 
   DEVELOPER RELATED:
 
 
   DEVELOPER RELATED: