Preparing for release of 3.1.0
[rsync.git] / NEWS
diff --git a/NEWS b/NEWS
index f8ddf8ed730921eeb7017ecd6975a7f26ccb9018..3ee18a51e2497ff9c1130d80370132ae31ae524a 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -1,6 +1,6 @@
-NEWS for rsync 3.1.0 (UNRELEASED)
+NEWS for rsync 3.1.0 (28 Sep 2013)
 Protocol: 31 (changed)
-Changes since 3.0.4:
+Changes since 3.0.9:
 
   OUTPUT CHANGES:
 
@@ -36,22 +36,49 @@ Changes since 3.0.4:
 
   BUG FIXES:
 
-    - Changed the way --progress overwrites its prior output in order to make
-      it nearly impossible for the progress to get overwritten by an error.
+    - Fixed a bug in the iconv code when EINVAL or EILSEQ is returned with a
+      full output buffer.
 
     - Fixed some rare bugs in --iconv processing that might cause a multibyte
       character to get translated incorrectly.
 
+    - Fixed a bogus "vanished file" error if some files were specified with
+      "./" prefixes and others were not.
+
+    - Fixed a bug in --sparse where an extra gap could get inserted after a
+      partial write.
+
+    - Changed the way --progress overwrites its prior output in order to make
+      it nearly impossible for the progress to get overwritten by an error.
+
     - Improved the propagation of abnormal-exit error messages.  This should
       help the client side to receive errors from the server when it is exiting
       abnormally, and should also avoid dying with an "connection unexpectedly
       closed" exit when the closed connection is really expected.
 
-    - Fixed a bug in the comparing of upper-case letters in file suffixes for
-      --skip-compress.
+    - The sender now checks each file it plans to remove to ensure that it
+      hasn't changed from the first stat's info.  This helps to avoid losing
+      file data when the user is not using the option in a safe manner.
+
+    - Fixed a data-duplication bug in the compress option that made compression
+      less efficient.  This improves protocol 31 onward, while behaving in a
+      compatible (buggy) manner with older rsync protocols.
 
-    - If an rsync daemon has a module configured without a path setting, rsync
-      will now disallow access to that module.
+    - When creating a temp-file, rsync is now a bit smarter about it dot-char
+      choices, which can fix a problem on OS X with names that start with "..".
+
+    - Rsync now sets a cleanup flag for --inplace and --append transfers that
+      will flush the write buffer if the transfer aborts.  This ensures that
+      more received data gets written out to the disk on an aborted transfer
+      (which is quite helpful on a slow, flaky connection).
+
+    - The reads that map_ptr() now does are aligned on 1K boundaries.  This
+      helps some filesystems and/or files that don't like unaligned reads.
+
+    - Fix an issue in the msleep() function if time jumps backwards.
+
+    - Fix daemon-server module-name splitting bug where an arg would get split
+      even if --protect-args was used.
 
   ENHANCEMENTS:
 
@@ -83,23 +110,39 @@ Changes since 3.0.4:
     - Added the "reverse lookup" parameter to the rsync daemon config file to
       allow reverse-DNS lookups to be disabled.
 
+    - Added a forward-DNS lookup for the daemon's hosts allow/deny config.  Can
+      be disabled via "forward lookup" parameter (defaults to enabled).
+
     - Added a way for more than one group to be specified in the daemon's
       config file, including a way to specify that you want all of the
       specified user's groups without having to name them.  Also changed the
       daemon to complain about an inability to set explicitly-specified uid/gid
       values, even when not run by a super-user.
 
+    - The daemon now tries to send the user the error messages from the
+      pre-xfer exec script when it fails.
+
+    - Improved the use of alt-dest options into an existing hierarchy of files:
+      If a match is found in an alt-dir, it takes precedence over an existing
+      file.  (We'll need to wait for a future version before attribute-changes
+      on otherwise unchanged files are safe when using an existing hierarchy.)
+
+    - Added per-user authorization options and group-authorization support to
+      the daemon's "auth users" parameter.
+
     - Added a way to reference environment variables in a daemon's config file
       (using %VAR% references).
 
     - When replacing a non-dir with a symlink/hard-link/device/special-file,
       the update should now be done in an atomic manner.
 
-    - Fixed a free of the wrong pointer in uncache_tmp_xattrs() (which only
-      sometimes affects an --xattr transfer when --backup is used).
+    - Avoid re-sending xattr info for hard-linked files w/the same xattrs
+      (protocol 31).
 
-    - When backing up a file, try to hard-link the file into place so that the
-      upcoming replacement of the destination file will be atomic.
+    - The backup code was improved to use better logic maintaining the backup
+      directory hierarchy.  Also, when a file is being backed up, rsync tries
+      to hard-link it into place so that the upcoming replacement of the
+      destination file will be atomic (for the normal, non-inplace logic).
 
     - Added the ability to synchronize nano-second modified times.
 
@@ -108,8 +151,40 @@ Changes since 3.0.4:
     - Added the checking of the RSYNC_PROTECT_ARGS environment variable to allow
       the default for the --protect-args command-line option to be overridden.
 
+    - Added the --preallocate command-line option.
+
+    - Allow --password-file=- to read the password from stdin (filename "-").
+
+    - Rsync now comes packaged with an rsync-ssl helper script that can be
+      used to contact a remote rsync daemon using a piped-stunnel command.
+      It also includes an stunnel config file to run the server side to
+      support ssl daemon connections.  See the packaging/lsb/rsync.spec
+      file for one way to package the resulting files.  (Suggestions for
+      how to make this even easier to install & use are welcomed.)
+
+    - Improved the speed of some --inplace updates when there are lots of
+      identical checksum blocks that end up being unusable.
+
+    - Added the --outbuf=N|L|B option for choosing the output buffering.
+
+    - Repeating the --fuzzy option now causes the code to look for fuzzy
+      matches inside alt-dest directories too.
+
+    - The --chmod option now supports numeric modes, e.g. --chmod=644,D755
+
     - Added some Solaris xattr code.
 
+    - Made an rsync daemon (the listening process) exit with a 0 status when
+      it was signaled to die.  This helps launchd.
+
+    - Improved the RSYNC_* environment variables for the pre-xfer exec script:
+      when a daemon is sent multiple request args, they are now joined into a
+      single return value (separated by spaces) so that the RSYNC_REQUEST
+      environment variable is accurate for any "pre-xfer exec".  The values in
+      RSYNC_ARG# vars are no longer truncated at the "." arg (prior to the
+      request dirs/files), so that all the requested values are also listed
+      (separately) in RSYNC_ARG# variables.
+
   EXTRAS:
 
     - Added an "instant-rsyncd" script to the support directory, which makes
@@ -119,6 +194,15 @@ Changes since 3.0.4:
       makes it easier to do user/group mapping in a local transfer based on
       passwd/group files from another machine.
 
+    - There's a new, improved version of the lsh script in the support dir:
+      it's written in perl and supports -u without resorting to using sudo
+      (when run as root).  The old shell version is now named lsh.sh.
+
+    - There is a helper script named rsync-slash-strip in the support directory
+      for anyone that wants to change the way rsync handles args with trailing
+      slashes.  (e.g. arg/ would get stripped to arg while arg/. would turn into
+      arg/).
+
   INTERNAL:
 
     - The I/O code was rewritten to be simpler and do bigger buffered reads
@@ -132,7 +216,7 @@ Changes since 3.0.4:
     - A daemon can now inform a client about a daemon-configured timeout value
       so that the client can assist in the keep-alive activity (protocol 31).
 
-    - The filter code received some refactoring to make it more extendable, to
+    - The filter code received some refactoring to make it more extendible, to
       read better, and do better sanity checking.
 
     - Really big numbers are now output using our own big-num routine rather
@@ -143,8 +227,17 @@ Changes since 3.0.4:
 
     - Added init_stat_x() function to avoid duplication of acl/xattr init code.
 
+    - The included zlib was upgraded from 1.2.3 to 1.2.8.
+
+    - Rsync can now be compiled to use an unmodified zlib library instead of
+      the tweaked one that is included with rsync.  This will eventually
+      become the default, at which point we'll start the countdown to removing
+      the included zlib.  Until then, feel free to configure using:
+
+       ./configure --with-included-zlib=no
+
   DEVELOPER RELATED:
 
     - Added more conditional debug output.
 
-    - Changed configure.in to configure.ac.
+    - Fixed some build issues for android and minix.