If there is no lchown(), don't try to set the user & group of a symlink.
[rsync/rsync.git] / NEWS
diff --git a/NEWS b/NEWS
index 2b1a961..4d9a5e5 100644 (file)
--- a/NEWS
+++ b/NEWS
-NEWS for rsync 2.6.3 (UNRELEASED)
+NEWS for rsync 2.6.4 (UNRELEASED)
 Protocol: 28 (unchanged)
-Changes since 2.6.2:
+Changes since 2.6.3:
 
   BUG FIXES:
 
-    - Fixed a crash bug that might appear when --delete was used and
-      multiple source directories were specified.
+    - Restore the list-clearing behavior of "!" in a .cvsignore file (2.6.3
+      was only treating it as a special token in an rsync include/exclude
+      file).
 
-    - Fixed the 32-bit truncation of the file length when generating the
-      checksums.
+    - Avoid a mkdir warning when removing a directory in the destination
+      that already exists in the --backup-dir.
 
-    - The --backup code no longer attempts to create some directories
-      over and over again (generating warnings along the way).
+    - An OS that has a binary mode for its files (such as cygwin0 needed
+      setmode(fd, O_BINARY) called on the temp-file we opened with
+      mkstemp().  (Fix picked up from the cygwin package.)
 
-    - Fixed a bug in the reading of the secrets file (by the daemon) and
-      the password file (by the client):  the files no longer need to be
-      terminated by a newline for their content to be read in.
+    - Fixed a potential hang when verbosity is high, the client side is
+      the sender, and the file-list is large.
 
-    - If a file has a read error on the sending side, the receiver will
-      no longer keep the resulting file unless the --partial option was
-      specified.  (Note:  both sides must be running 2.6.3 for this to
-      work -- older receivers always keep the file, and older senders
-      don't tell the receiver that the file was not read correctly.)
+    - We now check if the OS doesn't support using mknod() for creating
+      FIFOs and sockets, and compile-in using mkfifo() and socket() when
+      necessary.
 
-    - If a file gets resent in a single transfer and the --backup option
-      is enabled, rsync no longer performs a duplicate backup (losing the
-      original file in the process).
+    - Fixed an off-by-one error in the handling of --max-delete=N.
 
-    - Fixed an age-old crash problem with --read-batch on a local copy
-      (rsync was improperly assuming --whole-file for the local copy).
+    - One place in the code wasn't checking if fork() failed.
 
-    - Files specified in the daemon's "exclude" or "exclude from" config
-      items are now excluded from being uploaded (assuming that the module
-      allows uploading at all) in addition to the old download exclusion.
-
-    - Got rid of a potential hang in the receiver when near the end of a
-      phase.
-
-    - When using --backup without a --backup-dir, rsync no longer preserves
-      the modify time on directories.  This avoids confusing NFS.
-
-    - When --copy-links (-L) is specified, we now output a separate error
-      for a symlink that has no referent instead of claiming that a file
-      "vanished".
-
-    - Error messages from the daemon server's option-parsing (such as
-      refused options) now get sent back to the client (the server used
-      to just exit because the socket wasn't in the right state to send
-      the message).
-
-    - Most errors that occur during a daemon transfer are now returned to
-      the user in addition to being logged (some messages are intended to
-      be daemon-only).
-
-    - Fixed a bug in the daemon authentication code when using one of the
-      batch-processing options.
-
-    - We try to work around some buggy IPv6 implementations that fail to
-      implement IPV6_V6ONLY.  This should fix the "address in use" error
-      that some daemons get when running on an OS with a buggy IPv6
-      implementation.  Also, if the new code gets this error, we might
-      suggest that the user specify --ipv4 or --ipv6 (if we think it will
-      help).
+    - The "ignore nonreadable" daemon parameter no longer affects symlinks
+      that are being copied, even if they point nowhere.
 
   ENHANCEMENTS:
 
-    - Added --keep-dirlinks (-K), which allows you to symlink a directory
-      onto another partition on the receiving side and have rsync treat it
-      as matching a normal directory from the sender.
-
-    - Added the "write only" option to the daemon's config file.
-
-    - Added long-option names for -4 and -6 (namely --ipv4 and --ipv6)
-      and documented all these options in the man page.
-
-    - Improved the handling of the --bwlimit option so that it's less
-      bursty, more accurate, and works properly over a larger range of
-      values.
+    - Rsync now supports popt's option aliases, which means that you can
+      use /etc/popt and/or ~/.popt to create your own option aliases.
 
-    - The rsync daemon-over-ssh code now looks for SSH_CONNECTION and
-      SSH2_CLIENT in addition to SSH_CLIENT to figure out the IP address.
+    - Added the --copy-dest option, which works like --link-dest except
+      that it includes copies of identical files.
 
-    - Added the --checksum-seed=N option for advanced users.
+    - Added support for specifying multiple --compare-dest, --copy-dest, or
+      --link-dest options, but only of a single type. (Promoted from the
+      patches dir and enhanced.)
 
-    - Batch writing/reading has a brand-new implementation that is simpler,
-      fixes a few weird problems with the old code (such as no longer
-      sprinkling the batch files into different dirs or even onto different
-      systems), and is much less intrusive into the code (making it easier
-      to maintain for the future).  The new code generates just one data
-      file instead of three, which makes it possible to read the batch via
-      stdin.  Also, the old requirement of using the same fixed checksum-
-      seed for all batch processing has been removed.  (Chris Shoemaker)
+    - Added the --max-size option. (Promoted from the patches dir.)
 
-  INTERNAL:
+    - The daemon-mode options were separated from the normal rsync options
+      so that they can't be mixed together.  This makes it impossible to
+      start a daemon that had improper default option values that could
+      cause problems (such as a hang or an abort) when a client connects.
 
-    - Some cleanup in the exclude code has saved some per-exclude memory
-      and made the code easier to maintain.
+    - The --bwlimit option may now be used in combination with --daemon
+      to specify a default value for the daemon side and also a value
+      that cannot be exceeded by a user-specified --bwlimit option.
 
-    - Improved the argv-overflow checking for a remote command that has
-      a lot of args.
+    - Added the "port" parameter to the rsyncd.conf file. (Promoted from
+      the patches dir.)
 
-    - Use rsyserr() in the various places that were still calling
-      rprintf() with strerror() as an arg.
-
-    - If an rsync daemon is listening on multiple sockets (to handle both
-      IPv4 and IPv6 to a single port), we now close all the unneeded file
-      handles after we accept a connection (we used to close just one of
-      them).
-
-    - Optimized away a loop in hash_search().
+    - In _exit_cleanup(): when we are exiting with a partially-received
+      file, we now flush any data in the write-cache before closing the
+      partial file.
 
   BUILD CHANGES:
 
-    - Added a "gen" target to rebuild most of the generated files,
-      including configure, config.h.in, the man pages, and proto.h.
-
-    - If "make proto" doesn't find some changes in the prototypes, the
-      proto.h file is left untouched (its time-stamp used to always be
-      updated).
-
-    - The variable $STRIP (that is optionally set by the install-strip
-      target's rule) was changed to $INSTALL_STRIP because some systems
-      have $STRIP set in the environment.
-
-    - Fixed a build problem when SUPPORT_HARD_LINKS isn't defined.
-
-  DEVELOPER RELATED:
-
-    - The scripts in the testsuite dir were cleaned up a bit.
-
-    - Some new diffs were added to the patches dir, and some accepted
-      ones were removed.
-
+    - Handle an operating system that use mkdev() in place of makedev().