diff -u -r ./Portfile ../rsync.new/Portfile
--- ./Portfile	2012-01-09 17:00:28.000000000 -0500
+++ ../rsync.new/Portfile	2012-08-02 09:52:27.000000000 -0400
@@ -4,13 +4,13 @@
 PortSystem          1.0
 
 name                rsync
-version             3.0.8
-revision            1
+version             3.0.9
+revision            2
 categories          net
 license             GPL-3+
 installs_libs       no
 platforms           darwin freebsd sunos
-maintainers         nomaintainer
+maintainers         gmail.com:jimjag
 description         Fast incremental file transfer
 long_description    rsync is an open source utility that provides fast \
                     incremental file transfer. It works both locally and remote \
@@ -21,13 +21,14 @@
 master_sites        http://rsync.samba.org/ftp/rsync/ \
                     http://rsync.samba.org/ftp/rsync/src/
 
-checksums           md5     0ee8346ce16bdfe4c88a236e94c752b4 \
-                    sha1    10e80173c7e9ed8b8a4dc9e8fdab08402da5f08d \
-                    rmd160  f00c5ba42e33a1745976c9af5e770c220a6fa4a6
+checksums           md5     5ee72266fe2c1822333c407e1761b92b \
+                    sha1    c64c8341984aea647506eb504496999fd968ddfc \
+                    rmd160  e5ee8d786defb0d8f937c8d027466f418c63c97e \
+                    sha256  30f10f8dd5490d28240d4271bb652b1da7a60b22ed2b9ae28090668de9247c05
 
 depends_lib         port:popt port:libiconv
 
-# these come from http://rsync.samba.org/ftp/rsync/rsync-patches-3.0.8.tar.gz
+# these come from http://rsync.samba.org/ftp/rsync/rsync-patches-3.0.9.tar.gz
 # and need to be updated with each release
 patchfiles          patch-fileflags.diff \
                     patch-crtimes.diff
diff -u -r ./files/patch-crtimes.diff ../rsync.new/files/patch-crtimes.diff
--- ./files/patch-crtimes.diff	2011-07-02 01:00:21.000000000 -0400
+++ ../rsync.new/files/patch-crtimes.diff	2012-08-02 09:47:25.000000000 -0400
@@ -462,7 +462,7 @@
 diff --git a/rsync.yo b/rsync.yo
 --- a/rsync.yo
 +++ b/rsync.yo
-@@ -354,6 +354,7 @@ to the detailed description below for a complete description.  verb(
+@@ -367,6 +367,7 @@ to the detailed description below for a complete description.  verb(
   -D                          same as --devices --specials
   -t, --times                 preserve modification times
   -O, --omit-dir-times        omit directories from --times
@@ -470,7 +470,7 @@
       --super                 receiver attempts super-user activities
       --fake-super            store/recover privileged attrs using xattrs
   -S, --sparse                handle sparse files efficiently
-@@ -1086,6 +1087,9 @@ it is preserving modification times (see bf(--times)).  If NFS is sharing
+@@ -1105,6 +1106,9 @@ it is preserving modification times (see bf(--times)).  If NFS is sharing
  the directories on the receiving side, it is a good idea to use bf(-O).
  This option is inferred if you use bf(--backup) without bf(--backup-dir).
  
@@ -480,7 +480,7 @@
  dit(bf(--super)) This tells the receiving side to attempt super-user
  activities even if the receiving rsync wasn't run by the super-user.  These
  activities include: preserving users via the bf(--owner) option, preserving
-@@ -1782,7 +1786,7 @@ with older versions of rsync, but that also turns on the output of other
+@@ -1811,7 +1815,7 @@ with older versions of rsync, but that also turns on the output of other
  verbose messages).
  
  The "%i" escape has a cryptic output that is 11 letters long.  The general
@@ -489,7 +489,7 @@
  type of update being done, bf(X) is replaced by the file-type, and the
  other letters represent attributes that may be output if they are being
  modified.
-@@ -1841,6 +1845,8 @@ quote(itemization(
+@@ -1870,6 +1874,8 @@ quote(itemization(
    it() The bf(f) means that the fileflags information changed.
    it() The bf(a) means that the ACL information changed.
    it() The bf(x) means that the extended attribute information changed.
@@ -713,7 +713,7 @@
 diff -up a/rsync.1 b/rsync.1
 --- a/rsync.1
 +++ b/rsync.1
-@@ -429,6 +429,7 @@ to the detailed description below for a
+@@ -443,6 +443,7 @@ to the detailed description below for a
   \-D                          same as \-\-devices \-\-specials
   \-t, \-\-times                 preserve modification times
   \-O, \-\-omit\-dir\-times        omit directories from \-\-times
@@ -721,7 +721,7 @@
       \-\-super                 receiver attempts super\-user activities
       \-\-fake\-super            store/recover privileged attrs using xattrs
   \-S, \-\-sparse                handle sparse files efficiently
-@@ -1253,6 +1254,10 @@ it is preserving modification times (see
+@@ -1273,6 +1274,10 @@ it is preserving modification times (see
  the directories on the receiving side, it is a good idea to use \fB\-O\fP.
  This option is inferred if you use \fB\-\-backup\fP without \fB\-\-backup\-dir\fP.
  .IP 
@@ -732,7 +732,7 @@
  .IP "\fB\-\-super\fP"
  This tells the receiving side to attempt super\-user
  activities even if the receiving rsync wasn\(cq\&t run by the super\-user.  These
-@@ -2037,7 +2042,7 @@ with older versions of rsync, but that a
+@@ -2067,7 +2072,7 @@ with older versions of rsync, but that a
  verbose messages).
  .IP 
  The \(dq\&%i\(dq\& escape has a cryptic output that is 11 letters long.  The general
@@ -741,7 +741,7 @@
  type of update being done, \fBX\fP is replaced by the file\-type, and the
  other letters represent attributes that may be output if they are being
  modified.
-@@ -2112,6 +2117,9 @@ The \fBf\fP means that the fileflags inf
+@@ -2142,6 +2147,9 @@ The \fBf\fP means that the fileflags inf
  The \fBa\fP means that the ACL information changed.
  .IP o 
  The \fBx\fP means that the extended attribute information changed.
diff -u -r ./files/patch-fileflags.diff ../rsync.new/files/patch-fileflags.diff
--- ./files/patch-fileflags.diff	2011-07-02 01:00:21.000000000 -0400
+++ ../rsync.new/files/patch-fileflags.diff	2012-08-02 09:47:36.000000000 -0400
@@ -8,7 +8,7 @@
     ./configure
     make
 
-based-on: 1ddcdaf3f6808ba53aef9e19f630a18808de22ac
+based-on: 40afd365cc8ca968fd16e161d24df5b8a8a520cc
 diff --git a/Makefile.in b/Makefile.in
 --- a/Makefile.in
 +++ b/Makefile.in
@@ -271,10 +271,10 @@
  		if (statret != 0 && basis_dir[0] != NULL) {
  			int j = try_dests_non(file, fname, ndx, fnamecmpbuf, &sx,
  					      itemizing, code);
-@@ -1526,10 +1551,17 @@ static void recv_generator(char *fname, struct file_struct *file, int ndx,
- 		/* We need to ensure that the dirs in the transfer have writable
- 		 * permissions during the time we are putting files within them.
- 		 * This is then fixed after the transfer is done. */
+@@ -1535,10 +1560,17 @@ static void recv_generator(char *fname, struct file_struct *file, int ndx,
+ 		 * readable and writable permissions during the time we are
+ 		 * putting files within them.  This is then restored to the
+ 		 * former permissions after the transfer is done. */
 +#ifdef SUPPORT_FORCE_CHANGE
 +		if (force_change && F_FFLAGS(file) & force_change) {
 +			mode_t mode = file->mode;
@@ -283,14 +283,14 @@
 +		}
 +#endif
  #ifdef HAVE_CHMOD
- 		if (!am_root && !(file->mode & S_IWUSR) && dir_tweaking) {
- 			mode_t mode = file->mode | S_IWUSR;
+ 		if (!am_root && (file->mode & S_IRWXU) != S_IRWXU && dir_tweaking) {
+ 			mode_t mode = file->mode | S_IRWXU;
 -			if (do_chmod(fname, mode) < 0) {
 +			if (do_chmod(fname, mode, 0) < 0) {
  				rsyserr(FERROR_XFER, errno,
  					"failed to modify permissions on %s",
  					full_fname(fname));
-@@ -1572,6 +1604,10 @@ static void recv_generator(char *fname, struct file_struct *file, int ndx,
+@@ -1573,6 +1605,10 @@ static void recv_generator(char *fname, struct file_struct *file, int ndx,
  		file->mode = dest_mode(file->mode, sx.st.st_mode, dflt_perms,
  				       exists);
  	}
@@ -301,7 +301,7 @@
  
  #ifdef SUPPORT_HARD_LINKS
  	if (preserve_hard_links && F_HLINK_NOT_FIRST(file)
-@@ -2115,13 +2151,17 @@ static void touch_up_dirs(struct file_list *flist, int ndx)
+@@ -2116,13 +2152,17 @@ static void touch_up_dirs(struct file_list *flist, int ndx)
  			continue;
  		fname = f_name(file, NULL);
  		if (fix_dir_perms)
@@ -766,7 +766,7 @@
 diff --git a/rsync.yo b/rsync.yo
 --- a/rsync.yo
 +++ b/rsync.yo
-@@ -342,6 +342,7 @@ to the detailed description below for a complete description.  verb(
+@@ -355,6 +355,7 @@ to the detailed description below for a complete description.  verb(
   -K, --keep-dirlinks         treat symlinked dir on receiver as dir
   -H, --hard-links            preserve hard links
   -p, --perms                 preserve permissions
@@ -774,8 +774,8 @@
   -E, --executability         preserve executability
       --chmod=CHMOD           affect file and/or directory permissions
   -A, --acls                  preserve ACLs (implies -p)
-@@ -373,7 +374,10 @@ to the detailed description below for a complete description.  verb(
-      --delete-after          receiver deletes after transfer, not before
+@@ -386,7 +387,10 @@ to the detailed description below for a complete description.  verb(
+      --delete-after          receiver deletes after transfer, not during
       --delete-excluded       also delete excluded files from dest dirs
       --ignore-errors         delete even if there are I/O errors
 -     --force                 force deletion of dirs even if not empty
@@ -786,7 +786,7 @@
       --max-delete=NUM        don't delete more than NUM files
       --max-size=SIZE         don't transfer any file larger than SIZE
       --min-size=SIZE         don't transfer any file smaller than SIZE
-@@ -547,7 +551,8 @@ specified, in which case bf(-r) is not implied.
+@@ -566,7 +570,8 @@ specified, in which case bf(-r) is not implied.
  
  Note that bf(-a) bf(does not preserve hardlinks), because
  finding multiply-linked files is expensive.  You must separately
@@ -796,7 +796,7 @@
  
  dit(--no-OPTION) You may turn off one or more implied options by prefixing
  the option name with "no-".  Not all options may be prefixed with a "no-":
-@@ -827,7 +832,7 @@ they would be using bf(--copy-links).
+@@ -846,7 +851,7 @@ they would be using bf(--copy-links).
  Without this option, if the sending side has replaced a directory with a
  symlink to a directory, the receiving side will delete anything that is in
  the way of the new symlink, including a directory hierarchy (as long as
@@ -805,7 +805,7 @@
  
  See also bf(--keep-dirlinks) for an analogous option for the receiving
  side.
-@@ -990,6 +995,29 @@ Note that this option does not copy rsyncs special xattr values (e.g. those
+@@ -1009,6 +1014,29 @@ Note that this option does not copy rsyncs special xattr values (e.g. those
  used by bf(--fake-super)) unless you repeat the option (e.g. -XX).  This
  "copy all xattrs" mode cannot be used with bf(--fake-super).
  
@@ -833,9 +833,9 @@
 +bf(--force-change) and bf(--force-schange).
 +
  dit(bf(--chmod)) This option tells rsync to apply one or more
- comma-separated "chmod" strings to the permission of the files in the
+ comma-separated "chmod" modes to the permission of the files in the
  transfer.  The resulting value is treated as though it were the permissions
-@@ -1260,12 +1288,13 @@ See bf(--delete) (which is implied) for more details on file-deletion.
+@@ -1289,12 +1317,13 @@ See bf(--delete) (which is implied) for more details on file-deletion.
  dit(bf(--ignore-errors)) Tells bf(--delete) to go ahead and delete files
  even when there are I/O errors.
  
@@ -852,7 +852,7 @@
  bf(--recursive) option was also enabled.
  
  dit(bf(--max-delete=NUM)) This tells rsync not to delete more than NUM
-@@ -1753,7 +1782,7 @@ with older versions of rsync, but that also turns on the output of other
+@@ -1782,7 +1811,7 @@ with older versions of rsync, but that also turns on the output of other
  verbose messages).
  
  The "%i" escape has a cryptic output that is 11 letters long.  The general
@@ -861,7 +861,7 @@
  type of update being done, bf(X) is replaced by the file-type, and the
  other letters represent attributes that may be output if they are being
  modified.
-@@ -1809,7 +1838,7 @@ quote(itemization(
+@@ -1838,7 +1867,7 @@ quote(itemization(
    sender's value (requires bf(--owner) and super-user privileges).
    it() A bf(g) means the group is different and is being updated to the
    sender's value (requires bf(--group) and the authority to set the group).
@@ -1436,7 +1436,7 @@
 diff --git a/xattrs.c b/xattrs.c
 --- a/xattrs.c
 +++ b/xattrs.c
-@@ -1041,7 +1041,7 @@ int set_stat_xattr(const char *fname, struct file_struct *file, mode_t new_mode)
+@@ -1042,7 +1042,7 @@ int set_stat_xattr(const char *fname, struct file_struct *file, mode_t new_mode)
  	mode = (fst.st_mode & _S_IFMT) | (fmode & ACCESSPERMS)
  	     | (S_ISDIR(fst.st_mode) ? 0700 : 0600);
  	if (fst.st_mode != mode)
@@ -1461,7 +1461,7 @@
 diff -up a/configure.sh b/configure.sh
 --- a/configure.sh
 +++ b/configure.sh
-@@ -7425,6 +7425,7 @@ fi
+@@ -7444,6 +7444,7 @@ fi
  
  for ac_func in waitpid wait4 getcwd strdup chown chmod lchmod mknod mkfifo \
      fchmod fstat ftruncate strchr readlink link utime utimes lutimes strftime \
@@ -1524,7 +1524,7 @@
 diff -up a/rsync.1 b/rsync.1
 --- a/rsync.1
 +++ b/rsync.1
-@@ -417,6 +417,7 @@ to the detailed description below for a
+@@ -431,6 +431,7 @@ to the detailed description below for a
   \-K, \-\-keep\-dirlinks         treat symlinked dir on receiver as dir
   \-H, \-\-hard\-links            preserve hard links
   \-p, \-\-perms                 preserve permissions
@@ -1532,8 +1532,8 @@
   \-E, \-\-executability         preserve executability
       \-\-chmod=CHMOD           affect file and/or directory permissions
   \-A, \-\-acls                  preserve ACLs (implies \-p)
-@@ -448,7 +449,10 @@ to the detailed description below for a
-      \-\-delete\-after          receiver deletes after transfer, not before
+@@ -462,7 +463,10 @@ to the detailed description below for a
+      \-\-delete\-after          receiver deletes after transfer, not during
       \-\-delete\-excluded       also delete excluded files from dest dirs
       \-\-ignore\-errors         delete even if there are I/O errors
 -     \-\-force                 force deletion of dirs even if not empty
@@ -1544,7 +1544,7 @@
       \-\-max\-delete=NUM        don'\&t delete more than NUM files
       \-\-max\-size=SIZE         don'\&t transfer any file larger than SIZE
       \-\-min\-size=SIZE         don'\&t transfer any file smaller than SIZE
-@@ -638,7 +642,8 @@ specified, in which case \fB\-r\fP is no
+@@ -658,7 +662,8 @@ specified, in which case \fB\-r\fP is no
  .IP 
  Note that \fB\-a\fP \fBdoes not preserve hardlinks\fP, because
  finding multiply\-linked files is expensive.  You must separately
@@ -1554,7 +1554,7 @@
  .IP 
  .IP "\-\-no\-OPTION"
  You may turn off one or more implied options by prefixing
-@@ -955,7 +960,7 @@ they would be using \fB\-\-copy\-links\f
+@@ -975,7 +980,7 @@ they would be using \fB\-\-copy\-links\f
  Without this option, if the sending side has replaced a directory with a
  symlink to a directory, the receiving side will delete anything that is in
  the way of the new symlink, including a directory hierarchy (as long as
@@ -1563,7 +1563,7 @@
  .IP 
  See also \fB\-\-keep\-dirlinks\fP for an analogous option for the receiving
  side.
-@@ -1142,6 +1147,33 @@ Note that this option does not copy rsyn
+@@ -1162,6 +1167,33 @@ Note that this option does not copy rsyn
  used by \fB\-\-fake\-super\fP) unless you repeat the option (e.g. \-XX).  This
  \(dq\&copy all xattrs\(dq\& mode cannot be used with \fB\-\-fake\-super\fP.
  .IP 
@@ -1596,8 +1596,8 @@
 +.IP 
  .IP "\fB\-\-chmod\fP"
  This option tells rsync to apply one or more
- comma\-separated \(dq\&chmod\(dq\& strings to the permission of the files in the
-@@ -1442,13 +1474,14 @@ See \fB\-\-delete\fP (which is implied)
+ comma\-separated \(dq\&chmod\(dq\& modes to the permission of the files in the
+@@ -1472,13 +1504,14 @@ See \fB\-\-delete\fP (which is implied)
  Tells \fB\-\-delete\fP to go ahead and delete files
  even when there are I/O errors.
  .IP 
@@ -1615,7 +1615,7 @@
  \fB\-\-recursive\fP option was also enabled.
  .IP 
  .IP "\fB\-\-max\-delete=NUM\fP"
-@@ -2004,7 +2037,7 @@ with older versions of rsync, but that a
+@@ -2034,7 +2067,7 @@ with older versions of rsync, but that a
  verbose messages).
  .IP 
  The \(dq\&%i\(dq\& escape has a cryptic output that is 11 letters long.  The general
@@ -1624,7 +1624,7 @@
  type of update being done, \fBX\fP is replaced by the file\-type, and the
  other letters represent attributes that may be output if they are being
  modified.
-@@ -2074,7 +2107,7 @@ sender\(cq\&s value (requires \fB\-\-own
+@@ -2104,7 +2137,7 @@ sender\(cq\&s value (requires \fB\-\-own
  A \fBg\fP means the group is different and is being updated to the
  sender\(cq\&s value (requires \fB\-\-group\fP and the authority to set the group).
  .IP o 
