NEWS for rsync 3.0.4 (6 Sep 2008)
Protocol: 30 (unchanged)
Changes since 3.0.3:

  BUG FIXES:

    - Fixed a bug in the hard-linking code where it would sometimes try to
      allocate 0 bytes of memory (which fails on some OSes, such as AIX).

    - Fixed the hard-linking of files from a device that has a device number
      of 0 (which seems to be a common device number on NetBSD).

    - Fixed the handling of a --partial-dir that cannot be created.  This
      particularly impacts the --delay-updates option (since the files cannot
      be delayed without a partial-dir), and was potentially destructive if
      the --remove-source-files was also specified.

    - Fixed a couple issues in the --fake-super handling of xattrs when the
      destination files have root-level attributes (e.g. selinux values) that
      a non-root copy can't affect.

    - Improved the keep-alive check in the generator to fire consistently in
      incremental-recursion mode when --timeout is enabled.

    - The --iconv option now converts the content of a symlink too, instead
      of leaving it in the wrong character-set (requires 3.0.4 on both sides
      of the transfer).

    - When using --iconv, if a filename fails to convert on the receiving side,
      this no longer makes deletions in the root-dir of the transfer fail
      silently (the user now gets a warning about deletions being disabled
      due to IO error as long as --ignore-errors was not specified).

    - When using --iconv, if a server-side receiver can't convert a filename,
      the error message sent back to the client no longer mangles the name
      with the wrong charset conversion.

    - Fixed a potential alignment issue in the IRIX ACL code when allocating
      the initial "struct acl" object.  Also, cast mallocs to avoid warnings.

    - Changed some errors that were going to stdout to go to stderr.

    - Made human_num() and human_dnum() able to output a negative number
      (rather than outputting a cryptic string of punctuation).

  ENHANCEMENTS:

    - Rsync will avoid sending an -e option to the server if an older protocol
      is requested (and thus the option would not be useful).  This lets the
      user specify the --protocol=29 option to access an overly-restrictive
      server that is rejecting the protocol-30 use of -e to the server.

    - Improved the message output for an RERR_PARTIAL exit.

  DEVELOPER RELATED:

    - The Makefile will not halt for just a timestamp change on the Makefile
      or the configure files, only for actual changes in content.

    - Changed some commands in the testsuite's xattrs.test that called "rsync"
      instead of "$RSYNC".

    - Enhanced the release scripts to be able to handle a branch release and
      to do even more consistency checks on the files.
