<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>[143792] trunk/dports/net/rsync</title>
</head>
<body>

<style type="text/css"><!--
#msg dl.meta { border: 1px #006 solid; background: #369; padding: 6px; color: #fff; }
#msg dl.meta dt { float: left; width: 6em; font-weight: bold; }
#msg dt:after { content:':';}
#msg dl, #msg dt, #msg ul, #msg li, #header, #footer, #logmsg { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt;  }
#msg dl a { font-weight: bold}
#msg dl a:link    { color:#fc3; }
#msg dl a:active  { color:#ff0; }
#msg dl a:visited { color:#cc6; }
h3 { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; font-weight: bold; }
#msg pre { overflow: auto; background: #ffc; border: 1px #fa0 solid; padding: 6px; }
#logmsg { background: #ffc; border: 1px #fa0 solid; padding: 1em 1em 0 1em; }
#logmsg p, #logmsg pre, #logmsg blockquote { margin: 0 0 1em 0; }
#logmsg p, #logmsg li, #logmsg dt, #logmsg dd { line-height: 14pt; }
#logmsg h1, #logmsg h2, #logmsg h3, #logmsg h4, #logmsg h5, #logmsg h6 { margin: .5em 0; }
#logmsg h1:first-child, #logmsg h2:first-child, #logmsg h3:first-child, #logmsg h4:first-child, #logmsg h5:first-child, #logmsg h6:first-child { margin-top: 0; }
#logmsg ul, #logmsg ol { padding: 0; list-style-position: inside; margin: 0 0 0 1em; }
#logmsg ul { text-indent: -1em; padding-left: 1em; }#logmsg ol { text-indent: -1.5em; padding-left: 1.5em; }
#logmsg > ul, #logmsg > ol { margin: 0 0 1em 0; }
#logmsg pre { background: #eee; padding: 1em; }
#logmsg blockquote { border: 1px solid #fa0; border-left-width: 10px; padding: 1em 1em 0 1em; background: white;}
#logmsg dl { margin: 0; }
#logmsg dt { font-weight: bold; }
#logmsg dd { margin: 0; padding: 0 0 0.5em 0; }
#logmsg dd:before { content:'\00bb';}
#logmsg table { border-spacing: 0px; border-collapse: collapse; border-top: 4px solid #fa0; border-bottom: 1px solid #fa0; background: #fff; }
#logmsg table th { text-align: left; font-weight: normal; padding: 0.2em 0.5em; border-top: 1px dotted #fa0; }
#logmsg table td { text-align: right; border-top: 1px dotted #fa0; padding: 0.2em 0.5em; }
#logmsg table thead th { text-align: center; border-bottom: 1px solid #fa0; }
#logmsg table th.Corner { text-align: left; }
#logmsg hr { border: none 0; border-top: 2px dashed #fa0; height: 1px; }
#header, #footer { color: #fff; background: #636; border: 1px #300 solid; padding: 6px; }
#patch { width: 100%; }
#patch h4 {font-family: verdana,arial,helvetica,sans-serif;font-size:10pt;padding:8px;background:#369;color:#fff;margin:0;}
#patch .propset h4, #patch .binary h4 {margin:0;}
#patch pre {padding:0;line-height:1.2em;margin:0;}
#patch .diff {width:100%;background:#eee;padding: 0 0 10px 0;overflow:auto;}
#patch .propset .diff, #patch .binary .diff  {padding:10px 0;}
#patch span {display:block;padding:0 10px;}
#patch .modfile, #patch .addfile, #patch .delfile, #patch .propset, #patch .binary, #patch .copfile {border:1px solid #ccc;margin:10px 0;}
#patch ins {background:#dfd;text-decoration:none;display:block;padding:0 10px;}
#patch del {background:#fdd;text-decoration:none;display:block;padding:0 10px;}
#patch .lines, .info {color:#888;background:#fff;}
--></style>
<div id="msg">
<dl class="meta">
<dt>Revision</dt> <dd><a href="https://trac.macports.org/changeset/143792">143792</a></dd>
<dt>Author</dt> <dd>jimjag@macports.org</dd>
<dt>Date</dt> <dd>2015-12-21 13:32:41 -0800 (Mon, 21 Dec 2015)</dd>
</dl>

<h3>Log Message</h3>
<pre>Update rsync to version 3.1.2</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkdportsnetrsyncPortfile">trunk/dports/net/rsync/Portfile</a></li>
<li><a href="#trunkdportsnetrsyncfilespatchcrtimesdiff">trunk/dports/net/rsync/files/patch-crtimes.diff</a></li>
<li><a href="#trunkdportsnetrsyncfilespatchfileflagsdiff">trunk/dports/net/rsync/files/patch-fileflags.diff</a></li>
<li><a href="#trunkdportsnetrsyncfilespatchhfscompressionoptionsdiff">trunk/dports/net/rsync/files/patch-hfs-compression-options.diff</a></li>
<li><a href="#trunkdportsnetrsyncfilespatchhfscompressiondiff">trunk/dports/net/rsync/files/patch-hfs-compression.diff</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkdportsnetrsyncPortfile"></a>
<div class="modfile"><h4>Modified: trunk/dports/net/rsync/Portfile (143791 => 143792)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/dports/net/rsync/Portfile        2015-12-21 21:16:15 UTC (rev 143791)
+++ trunk/dports/net/rsync/Portfile        2015-12-21 21:32:41 UTC (rev 143792)
</span><span class="lines">@@ -4,7 +4,7 @@
</span><span class="cx"> PortSystem          1.0
</span><span class="cx"> 
</span><span class="cx"> name                rsync
</span><del>-version             3.1.1
</del><ins>+version             3.1.2
</ins><span class="cx"> revision            0
</span><span class="cx"> categories          net
</span><span class="cx"> license             GPL-3+
</span><span class="lines">@@ -21,14 +21,14 @@
</span><span class="cx"> master_sites        http://rsync.samba.org/ftp/rsync/ \
</span><span class="cx">                     http://rsync.samba.org/ftp/rsync/src/
</span><span class="cx"> 
</span><del>-checksums           md5     43bd6676f0b404326eee2d63be3cdcfe \
-                    sha1    c84faba04f721d393feccfa0476bfeed9b5b5250 \
-                    rmd160  de7ad955cb05d481a963aa30423790f3d82efe7b \
-                    sha256  7de4364fcf5fe42f3bdb514417f1c40d10bbca896abe7e7f2c581c6ea08a2621
</del><ins>+checksums           md5     0f758d7e000c0f7f7d3792610fad70cb \
+                    sha1    0d4c7fb7fe3fc80eeff922a7c1d81df11dbb8a1a \
+                    rmd160  f7d6c0c9752af8d9eb933cffc6032c1763490a04 \
+                    sha256  ecfa62a7fa3c4c18b9eccd8c16eaddee4bd308a76ea50b5c02a5840f09c0a1c2
</ins><span class="cx"> 
</span><span class="cx"> depends_lib         port:popt port:libiconv
</span><span class="cx"> 
</span><del>-# these come from http://rsync.samba.org/ftp/rsync/rsync-patches-3.1.1.tar.gz
</del><ins>+# these come from http://rsync.samba.org/ftp/rsync/rsync-patches-3.1.2.tar.gz
</ins><span class="cx"> # and need to be updated with each release
</span><span class="cx"> patchfiles          patch-fileflags.diff \
</span><span class="cx">                     patch-crtimes.diff \
</span></span></pre></div>
<a id="trunkdportsnetrsyncfilespatchcrtimesdiff"></a>
<div class="modfile"><h4>Modified: trunk/dports/net/rsync/files/patch-crtimes.diff (143791 => 143792)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/dports/net/rsync/files/patch-crtimes.diff        2015-12-21 21:16:15 UTC (rev 143791)
+++ trunk/dports/net/rsync/files/patch-crtimes.diff        2015-12-21 21:32:41 UTC (rev 143792)
</span><span class="lines">@@ -13,7 +13,7 @@
</span><span class="cx"> diff --git a/compat.c b/compat.c
</span><span class="cx"> --- a/compat.c
</span><span class="cx"> +++ b/compat.c
</span><del>-@@ -48,6 +48,7 @@ extern int force_change;
</del><ins>+@@ -49,6 +49,7 @@ extern int force_change;
</ins><span class="cx">  extern int protect_args;
</span><span class="cx">  extern int preserve_uid;
</span><span class="cx">  extern int preserve_gid;
</span><span class="lines">@@ -21,7 +21,7 @@
</span><span class="cx">  extern int preserve_fileflags;
</span><span class="cx">  extern int preserve_acls;
</span><span class="cx">  extern int preserve_xattrs;
</span><del>-@@ -66,7 +67,7 @@ extern char *iconv_opt;
</del><ins>+@@ -67,7 +68,7 @@ extern char *iconv_opt;
</ins><span class="cx">  #endif
</span><span class="cx">  
</span><span class="cx">  /* These index values are for the file-list's extra-attribute array. */
</span><span class="lines">@@ -30,7 +30,7 @@
</span><span class="cx">  
</span><span class="cx">  int receiver_symlink_times = 0; /* receiver can set the time on a symlink */
</span><span class="cx">  int sender_symlink_iconv = 0;        /* sender should convert symlink content */
</span><del>-@@ -144,6 +145,8 @@ void setup_protocol(int f_out,int f_in)
</del><ins>+@@ -146,6 +147,8 @@ void setup_protocol(int f_out,int f_in)
</ins><span class="cx">                  uid_ndx = ++file_extra_cnt;
</span><span class="cx">          if (preserve_gid)
</span><span class="cx">                  gid_ndx = ++file_extra_cnt;
</span><span class="lines">@@ -227,7 +227,7 @@
</span><span class="cx">          }
</span><span class="cx">  }
</span><span class="cx">  
</span><del>-@@ -1250,6 +1270,7 @@ static void recv_generator(char *fname, struct file_struct *file, int ndx,
</del><ins>+@@ -1251,6 +1271,7 @@ static void recv_generator(char *fname, struct file_struct *file, int ndx,
</ins><span class="cx">                          return;
</span><span class="cx">                  }
</span><span class="cx">          }
</span><span class="lines">@@ -270,7 +270,7 @@
</span><span class="cx"> diff --git a/log.c b/log.c
</span><span class="cx"> --- a/log.c
</span><span class="cx"> +++ b/log.c
</span><del>-@@ -723,7 +723,8 @@ static void log_formatted(enum logcode code, const char *format, const char *op,
</del><ins>+@@ -712,7 +712,8 @@ static void log_formatted(enum logcode code, const char *format, const char *op,
</ins><span class="cx">                          c[8] = !(iflags &amp; ITEM_REPORT_FFLAGS) ? '.' : 'f';
</span><span class="cx">                          c[9] = !(iflags &amp; ITEM_REPORT_ACL) ? '.' : 'a';
</span><span class="cx">                          c[10] = !(iflags &amp; ITEM_REPORT_XATTR) ? '.' : 'x';
</span><span class="lines">@@ -291,7 +291,7 @@
</span><span class="cx">  int update_only = 0;
</span><span class="cx">  int cvs_exclude = 0;
</span><span class="cx">  int dry_run = 0;
</span><del>-@@ -718,6 +719,7 @@ void usage(enum logcode F)
</del><ins>+@@ -716,6 +717,7 @@ void usage(enum logcode F)
</ins><span class="cx">    rprintf(F,&quot;     --specials              preserve special files\n&quot;);
</span><span class="cx">    rprintf(F,&quot; -D                          same as --devices --specials\n&quot;);
</span><span class="cx">    rprintf(F,&quot; -t, --times                 preserve modification times\n&quot;);
</span><span class="lines">@@ -299,7 +299,7 @@
</span><span class="cx">    rprintf(F,&quot; -O, --omit-dir-times        omit directories from --times\n&quot;);
</span><span class="cx">    rprintf(F,&quot; -J, --omit-link-times       omit symlinks from --times\n&quot;);
</span><span class="cx">    rprintf(F,&quot;     --super                 receiver attempts super-user activities\n&quot;);
</span><del>-@@ -885,6 +887,9 @@ static struct poptOption long_options[] = {
</del><ins>+@@ -883,6 +885,9 @@ static struct poptOption long_options[] = {
</ins><span class="cx">    {&quot;times&quot;,           't', POPT_ARG_VAL,    &amp;preserve_times, 1, 0, 0 },
</span><span class="cx">    {&quot;no-times&quot;,         0,  POPT_ARG_VAL,    &amp;preserve_times, 0, 0, 0 },
</span><span class="cx">    {&quot;no-t&quot;,             0,  POPT_ARG_VAL,    &amp;preserve_times, 0, 0, 0 },
</span><span class="lines">@@ -309,7 +309,7 @@
</span><span class="cx">    {&quot;omit-dir-times&quot;,  'O', POPT_ARG_VAL,    &amp;omit_dir_times, 1, 0, 0 },
</span><span class="cx">    {&quot;no-omit-dir-times&quot;,0,  POPT_ARG_VAL,    &amp;omit_dir_times, 0, 0, 0 },
</span><span class="cx">    {&quot;no-O&quot;,             0,  POPT_ARG_VAL,    &amp;omit_dir_times, 0, 0, 0 },
</span><del>-@@ -2465,6 +2470,8 @@ void server_options(char **args, int *argc_p)
</del><ins>+@@ -2463,6 +2468,8 @@ void server_options(char **args, int *argc_p)
</ins><span class="cx">                  argstr[x++] = 'D';
</span><span class="cx">          if (preserve_times)
</span><span class="cx">                  argstr[x++] = 't';
</span><span class="lines">@@ -329,9 +329,9 @@
</span><span class="cx"> +        if (sxp-&gt;st.st_ino == 2 &amp;&amp; S_ISDIR(sxp-&gt;st.st_mode))
</span><span class="cx"> +                flags |= ATTRS_SKIP_CRTIME;
</span><span class="cx">          if (!(flags &amp; ATTRS_SKIP_MTIME)
</span><del>-             &amp;&amp; cmp_time(sxp-&gt;st.st_mtime, file-&gt;modtime) != 0) {
-                 int ret = set_modtime(fname, file-&gt;modtime, F_MOD_NSEC(file), sxp-&gt;st.st_mode, ST_FLAGS(sxp-&gt;st));
-@@ -594,6 +597,14 @@ int set_file_attrs(const char *fname, struct file_struct *file, stat_x *sxp,
</del><ins>+          &amp;&amp; (sxp-&gt;st.st_mtime != file-&gt;modtime
+ #ifdef ST_MTIME_NSEC
+@@ -598,6 +601,14 @@ int set_file_attrs(const char *fname, struct file_struct *file, stat_x *sxp,
</ins><span class="cx">                  else
</span><span class="cx">                          file-&gt;flags |= FLAG_TIME_FAILED;
</span><span class="cx">          }
</span><span class="lines">@@ -346,7 +346,7 @@
</span><span class="cx">  
</span><span class="cx">  #ifdef SUPPORT_ACLS
</span><span class="cx">          /* It's OK to call set_acl() now, even for a dir, as the generator
</span><del>-@@ -710,7 +721,7 @@ int finish_transfer(const char *fname, const char *fnametmp,
</del><ins>+@@ -714,7 +725,7 @@ int finish_transfer(const char *fname, const char *fnametmp,
</ins><span class="cx">          /* Change permissions before putting the file into place. */
</span><span class="cx">          set_file_attrs(fnametmp, file, NULL, fnamecmp,
</span><span class="cx">                         ATTRS_DELAY_IMMUTABLE
</span><span class="lines">@@ -355,7 +355,7 @@
</span><span class="cx">  
</span><span class="cx">          /* move tmp file over real file */
</span><span class="cx">          if (DEBUG_GTE(RECV, 1))
</span><del>-@@ -739,7 +750,7 @@ int finish_transfer(const char *fname, const char *fnametmp,
</del><ins>+@@ -743,7 +754,7 @@ int finish_transfer(const char *fname, const char *fnametmp,
</ins><span class="cx">  
</span><span class="cx">    do_set_file_attrs:
</span><span class="cx">          set_file_attrs(fnametmp, file, NULL, fnamecmp,
</span><span class="lines">@@ -410,7 +410,7 @@
</span><span class="cx">  #define DEV_EXTRA_CNT 2
</span><span class="cx">  #define DIRNODE_EXTRA_CNT 3
</span><span class="cx">  #define SUM_EXTRA_CNT ((MAX_DIGEST_LEN + EXTRA_LEN - 1) / EXTRA_LEN)
</span><del>-@@ -1022,6 +1026,7 @@ typedef struct {
</del><ins>+@@ -1021,6 +1025,7 @@ typedef struct {
</ins><span class="cx">  
</span><span class="cx">  typedef struct {
</span><span class="cx">      STRUCT_STAT st;
</span><span class="lines">@@ -429,7 +429,7 @@
</span><span class="cx">   -O, --omit-dir-times        omit directories from --times
</span><span class="cx">   -J, --omit-link-times       omit symlinks from --times
</span><span class="cx">       --super                 receiver attempts super-user activities
</span><del>-@@ -1201,6 +1202,9 @@ cause the next transfer to behave as if it used bf(-I), causing all files to be
</del><ins>+@@ -1208,6 +1209,9 @@ cause the next transfer to behave as if it used bf(-I), causing all files to be
</ins><span class="cx">  updated (though rsync's delta-transfer algorithm will make the update fairly efficient
</span><span class="cx">  if the files haven't actually changed, you're much better off using bf(-t)).
</span><span class="cx">  
</span><span class="lines">@@ -439,7 +439,7 @@
</span><span class="cx">  dit(bf(-O, --omit-dir-times)) This tells rsync to omit directories when
</span><span class="cx">  it is preserving modification times (see bf(--times)).  If NFS is sharing
</span><span class="cx">  the directories on the receiving side, it is a good idea to use bf(-O).
</span><del>-@@ -2103,7 +2107,7 @@ with older versions of rsync, but that also turns on the output of other
</del><ins>+@@ -2110,7 +2114,7 @@ with older versions of rsync, but that also turns on the output of other
</ins><span class="cx">  verbose messages).
</span><span class="cx">  
</span><span class="cx">  The &quot;%i&quot; escape has a cryptic output that is 11 letters long.  The general
</span><span class="lines">@@ -448,7 +448,7 @@
</span><span class="cx">  type of update being done, bf(X) is replaced by the file-type, and the
</span><span class="cx">  other letters represent attributes that may be output if they are being
</span><span class="cx">  modified.
</span><del>-@@ -2162,6 +2166,8 @@ quote(itemization(
</del><ins>+@@ -2169,6 +2173,8 @@ quote(itemization(
</ins><span class="cx">    it() The bf(f) means that the fileflags information changed.
</span><span class="cx">    it() The bf(a) means that the ACL information changed.
</span><span class="cx">    it() The bf(x) means that the extended attribute information changed.
</span><span class="lines">@@ -683,7 +683,7 @@
</span><span class="cx"> diff -Nurp a/proto.h b/proto.h
</span><span class="cx"> --- a/proto.h
</span><span class="cx"> +++ b/proto.h
</span><del>-@@ -327,6 +327,8 @@ int do_stat(const char *fname, STRUCT_ST
</del><ins>+@@ -328,6 +328,8 @@ int do_stat(const char *fname, STRUCT_ST
</ins><span class="cx">  int do_lstat(const char *fname, STRUCT_STAT *st);
</span><span class="cx">  int do_fstat(int fd, STRUCT_STAT *st);
</span><span class="cx">  OFF_T do_lseek(int fd, OFF_T offset, int whence);
</span><span class="lines">@@ -703,7 +703,7 @@
</span><span class="cx">   \-O, \-\-omit\-dir\-times        omit directories from \-\-times
</span><span class="cx">   \-J, \-\-omit\-link\-times       omit symlinks from \-\-times
</span><span class="cx">       \-\-super                 receiver attempts super\-user activities
</span><del>-@@ -1379,6 +1380,10 @@ cause the next transfer to behave as if
</del><ins>+@@ -1386,6 +1387,10 @@ cause the next transfer to behave as if
</ins><span class="cx">  updated (though rsync\(cq\&amp;s delta\-transfer algorithm will make the update fairly efficient
</span><span class="cx">  if the files haven\(cq\&amp;t actually changed, you\(cq\&amp;re much better off using \fB\-t\fP).
</span><span class="cx">  .IP 
</span><span class="lines">@@ -714,7 +714,7 @@
</span><span class="cx">  .IP &quot;\fB\-O, \-\-omit\-dir\-times\fP&quot;
</span><span class="cx">  This tells rsync to omit directories when
</span><span class="cx">  it is preserving modification times (see \fB\-\-times\fP).  If NFS is sharing
</span><del>-@@ -2390,7 +2395,7 @@ with older versions of rsync, but that a
</del><ins>+@@ -2397,7 +2402,7 @@ with older versions of rsync, but that a
</ins><span class="cx">  verbose messages).
</span><span class="cx">  .IP 
</span><span class="cx">  The \(dq\&amp;%i\(dq\&amp; escape has a cryptic output that is 11 letters long.  The general
</span><span class="lines">@@ -723,7 +723,7 @@
</span><span class="cx">  type of update being done, \fBX\fP is replaced by the file\-type, and the
</span><span class="cx">  other letters represent attributes that may be output if they are being
</span><span class="cx">  modified.
</span><del>-@@ -2465,6 +2470,9 @@ The \fBf\fP means that the fileflags inf
</del><ins>+@@ -2472,6 +2477,9 @@ The \fBf\fP means that the fileflags inf
</ins><span class="cx">  The \fBa\fP means that the ACL information changed.
</span><span class="cx">  .IP o 
</span><span class="cx">  The \fBx\fP means that the extended attribute information changed.
</span></span></pre></div>
<a id="trunkdportsnetrsyncfilespatchfileflagsdiff"></a>
<div class="modfile"><h4>Modified: trunk/dports/net/rsync/files/patch-fileflags.diff (143791 => 143792)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/dports/net/rsync/files/patch-fileflags.diff        2015-12-21 21:16:15 UTC (rev 143791)
+++ trunk/dports/net/rsync/files/patch-fileflags.diff        2015-12-21 21:32:41 UTC (rev 143792)
</span><span class="lines">@@ -8,11 +8,11 @@
</span><span class="cx">     ./configure
</span><span class="cx">     make
</span><span class="cx"> 
</span><del>-based-on: 7cb0de6326c915a72253fd103dae93308031ec3f
</del><ins>+based-on: 16b49716d55a50f2e985b879b720b2c53c892a3a
</ins><span class="cx"> diff --git a/Makefile.in b/Makefile.in
</span><span class="cx"> --- a/Makefile.in
</span><span class="cx"> +++ b/Makefile.in
</span><del>-@@ -45,7 +45,7 @@ popt_OBJS=popt/findme.o  popt/popt.o  popt/poptconfig.o \
</del><ins>+@@ -46,7 +46,7 @@ popt_OBJS=popt/findme.o  popt/popt.o  popt/poptconfig.o \
</ins><span class="cx">          popt/popthelp.o popt/poptparse.o
</span><span class="cx">  OBJS=$(OBJS1) $(OBJS2) $(OBJS3) $(DAEMON_OBJ) $(LIBOBJ) @BUILD_ZLIB@ @BUILD_POPT@
</span><span class="cx">  
</span><span class="lines">@@ -21,7 +21,7 @@
</span><span class="cx">  
</span><span class="cx">  # Programs we must have to run the test cases
</span><span class="cx">  CHECK_PROGS = rsync$(EXEEXT) tls$(EXEEXT) getgroups$(EXEEXT) getfsdev$(EXEEXT) \
</span><del>-@@ -127,7 +127,7 @@ getgroups$(EXEEXT): getgroups.o
</del><ins>+@@ -128,7 +128,7 @@ getgroups$(EXEEXT): getgroups.o
</ins><span class="cx">  getfsdev$(EXEEXT): getfsdev.o
</span><span class="cx">          $(CC) $(CFLAGS) $(LDFLAGS) -o $@ getfsdev.o $(LIBS)
</span><span class="cx">  
</span><span class="lines">@@ -33,7 +33,7 @@
</span><span class="cx"> diff --git a/compat.c b/compat.c
</span><span class="cx"> --- a/compat.c
</span><span class="cx"> +++ b/compat.c
</span><del>-@@ -44,9 +44,11 @@ extern int checksum_seed;
</del><ins>+@@ -45,9 +45,11 @@ extern int checksum_seed;
</ins><span class="cx">  extern int basis_dir_cnt;
</span><span class="cx">  extern int prune_empty_dirs;
</span><span class="cx">  extern int protocol_version;
</span><span class="lines">@@ -45,7 +45,7 @@
</span><span class="cx">  extern int preserve_acls;
</span><span class="cx">  extern int preserve_xattrs;
</span><span class="cx">  extern int need_messages_from_generator;
</span><del>-@@ -64,7 +66,7 @@ extern char *iconv_opt;
</del><ins>+@@ -65,7 +67,7 @@ extern char *iconv_opt;
</ins><span class="cx">  #endif
</span><span class="cx">  
</span><span class="cx">  /* These index values are for the file-list's extra-attribute array. */
</span><span class="lines">@@ -54,7 +54,7 @@
</span><span class="cx">  
</span><span class="cx">  int receiver_symlink_times = 0; /* receiver can set the time on a symlink */
</span><span class="cx">  int sender_symlink_iconv = 0;        /* sender should convert symlink content */
</span><del>-@@ -142,6 +144,8 @@ void setup_protocol(int f_out,int f_in)
</del><ins>+@@ -144,6 +146,8 @@ void setup_protocol(int f_out,int f_in)
</ins><span class="cx">                  uid_ndx = ++file_extra_cnt;
</span><span class="cx">          if (preserve_gid)
</span><span class="cx">                  gid_ndx = ++file_extra_cnt;
</span><span class="lines">@@ -66,7 +66,7 @@
</span><span class="cx"> diff --git a/configure.ac b/configure.ac
</span><span class="cx"> --- a/configure.ac
</span><span class="cx"> +++ b/configure.ac
</span><del>-@@ -597,6 +597,7 @@ AC_FUNC_UTIME_NULL
</del><ins>+@@ -593,6 +593,7 @@ AC_FUNC_UTIME_NULL
</ins><span class="cx">  AC_FUNC_ALLOCA
</span><span class="cx">  AC_CHECK_FUNCS(waitpid wait4 getcwd strdup chown chmod lchmod mknod mkfifo \
</span><span class="cx">      fchmod fstat ftruncate strchr readlink link utime utimes lutimes strftime \
</span><span class="lines">@@ -257,7 +257,7 @@
</span><span class="cx">  #ifdef SUPPORT_ACLS
</span><span class="cx">                  if (preserve_acls &amp;&amp; !S_ISLNK(file-&gt;mode)) {
</span><span class="cx">                          if (!ACL_READY(*sxp))
</span><del>-@@ -1395,6 +1406,10 @@ static void recv_generator(char *fname, struct file_struct *file, int ndx,
</del><ins>+@@ -1408,6 +1419,10 @@ static void recv_generator(char *fname, struct file_struct *file, int ndx,
</ins><span class="cx">                          file-&gt;mode = dest_mode(file-&gt;mode, sx.st.st_mode,
</span><span class="cx">                                                 dflt_perms, statret == 0);
</span><span class="cx">                  }
</span><span class="lines">@@ -268,7 +268,7 @@
</span><span class="cx">                  if (statret != 0 &amp;&amp; basis_dir[0] != NULL) {
</span><span class="cx">                          int j = try_dests_non(file, fname, ndx, fnamecmpbuf, &amp;sx,
</span><span class="cx">                                                itemizing, code);
</span><del>-@@ -1439,10 +1454,15 @@ static void recv_generator(char *fname, struct file_struct *file, int ndx,
</del><ins>+@@ -1452,10 +1467,15 @@ static void recv_generator(char *fname, struct file_struct *file, int ndx,
</ins><span class="cx">                   * readable and writable permissions during the time we are
</span><span class="cx">                   * putting files within them.  This is then restored to the
</span><span class="cx">                   * former permissions after the transfer is done. */
</span><span class="lines">@@ -285,7 +285,7 @@
</span><span class="cx">                                  rsyserr(FERROR_XFER, errno,
</span><span class="cx">                                          &quot;failed to modify permissions on %s&quot;,
</span><span class="cx">                                          full_fname(fname));
</span><del>-@@ -1477,6 +1497,10 @@ static void recv_generator(char *fname, struct file_struct *file, int ndx,
</del><ins>+@@ -1491,6 +1511,10 @@ static void recv_generator(char *fname, struct file_struct *file, int ndx,
</ins><span class="cx">                  file-&gt;mode = dest_mode(file-&gt;mode, sx.st.st_mode, dflt_perms,
</span><span class="cx">                                         exists);
</span><span class="cx">          }
</span><span class="lines">@@ -296,7 +296,7 @@
</span><span class="cx">  
</span><span class="cx">  #ifdef SUPPORT_HARD_LINKS
</span><span class="cx">          if (preserve_hard_links &amp;&amp; F_HLINK_NOT_FIRST(file)
</span><del>-@@ -2045,13 +2069,17 @@ static void touch_up_dirs(struct file_list *flist, int ndx)
</del><ins>+@@ -2059,13 +2083,17 @@ static void touch_up_dirs(struct file_list *flist, int ndx)
</ins><span class="cx">                          continue;
</span><span class="cx">                  fname = f_name(file, NULL);
</span><span class="cx">                  if (fix_dir_perms)
</span><span class="lines">@@ -319,7 +319,7 @@
</span><span class="cx"> diff --git a/log.c b/log.c
</span><span class="cx"> --- a/log.c
</span><span class="cx"> +++ b/log.c
</span><del>-@@ -720,7 +720,7 @@ static void log_formatted(enum logcode code, const char *format, const char *op,
</del><ins>+@@ -709,7 +709,7 @@ static void log_formatted(enum logcode code, const char *format, const char *op,
</ins><span class="cx">                          c[5] = !(iflags &amp; ITEM_REPORT_PERMS) ? '.' : 'p';
</span><span class="cx">                          c[6] = !(iflags &amp; ITEM_REPORT_OWNER) ? '.' : 'o';
</span><span class="cx">                          c[7] = !(iflags &amp; ITEM_REPORT_GROUP) ? '.' : 'g';
</span><span class="lines">@@ -349,7 +349,7 @@
</span><span class="cx">  extern int file_total;
</span><span class="cx">  extern int recurse;
</span><span class="cx">  extern int xfer_dirs;
</span><del>-@@ -839,6 +843,22 @@ static int do_recv(int f_in, int f_out, char *local_name)
</del><ins>+@@ -840,6 +844,22 @@ static int do_recv(int f_in, int f_out, char *local_name)
</ins><span class="cx">           * points to an identical file won't be replaced by the referent. */
</span><span class="cx">          copy_links = copy_dirlinks = copy_unsafe_links = 0;
</span><span class="cx">  
</span><span class="lines">@@ -391,7 +391,7 @@
</span><span class="cx">  int io_timeout = 0;
</span><span class="cx">  int prune_empty_dirs = 0;
</span><span class="cx">  int use_qsort = 0;
</span><del>-@@ -574,6 +576,7 @@ static void print_rsync_version(enum logcode f)
</del><ins>+@@ -572,6 +574,7 @@ static void print_rsync_version(enum logcode f)
</ins><span class="cx">          char const *links = &quot;no &quot;;
</span><span class="cx">          char const *iconv = &quot;no &quot;;
</span><span class="cx">          char const *ipv6 = &quot;no &quot;;
</span><span class="lines">@@ -399,7 +399,7 @@
</span><span class="cx">          STRUCT_STAT *dumstat;
</span><span class="cx">  
</span><span class="cx">  #if SUBPROTOCOL_VERSION != 0
</span><del>-@@ -610,6 +613,9 @@ static void print_rsync_version(enum logcode f)
</del><ins>+@@ -608,6 +611,9 @@ static void print_rsync_version(enum logcode f)
</ins><span class="cx">  #ifdef CAN_SET_SYMLINK_TIMES
</span><span class="cx">          symtimes = &quot;&quot;;
</span><span class="cx">  #endif
</span><span class="lines">@@ -409,7 +409,7 @@
</span><span class="cx">  
</span><span class="cx">          rprintf(f, &quot;%s  version %s  protocol version %d%s\n&quot;,
</span><span class="cx">                  RSYNC_NAME, RSYNC_VERSION, PROTOCOL_VERSION, subprotocol);
</span><del>-@@ -623,8 +629,8 @@ static void print_rsync_version(enum logcode f)
</del><ins>+@@ -621,8 +627,8 @@ static void print_rsync_version(enum logcode f)
</ins><span class="cx">                  (int)(sizeof (int64) * 8));
</span><span class="cx">          rprintf(f, &quot;    %ssocketpairs, %shardlinks, %ssymlinks, %sIPv6, batchfiles, %sinplace,\n&quot;,
</span><span class="cx">                  got_socketpair, hardlinks, links, ipv6, have_inplace);
</span><span class="lines">@@ -420,7 +420,7 @@
</span><span class="cx">  
</span><span class="cx">  #ifdef MAINTAINER_MODE
</span><span class="cx">          rprintf(f, &quot;Panic Action: \&quot;%s\&quot;\n&quot;, get_panic_action());
</span><del>-@@ -695,6 +701,9 @@ void usage(enum logcode F)
</del><ins>+@@ -693,6 +699,9 @@ void usage(enum logcode F)
</ins><span class="cx">    rprintf(F,&quot; -K, --keep-dirlinks         treat symlinked dir on receiver as dir\n&quot;);
</span><span class="cx">    rprintf(F,&quot; -H, --hard-links            preserve hard links\n&quot;);
</span><span class="cx">    rprintf(F,&quot; -p, --perms                 preserve permissions\n&quot;);
</span><span class="lines">@@ -430,7 +430,7 @@
</span><span class="cx">    rprintf(F,&quot; -E, --executability         preserve the file's executability\n&quot;);
</span><span class="cx">    rprintf(F,&quot;     --chmod=CHMOD           affect file and/or directory permissions\n&quot;);
</span><span class="cx">  #ifdef SUPPORT_ACLS
</span><del>-@@ -740,7 +749,12 @@ void usage(enum logcode F)
</del><ins>+@@ -738,7 +747,12 @@ void usage(enum logcode F)
</ins><span class="cx">    rprintf(F,&quot;     --ignore-missing-args   ignore missing source args without error\n&quot;);
</span><span class="cx">    rprintf(F,&quot;     --delete-missing-args   delete missing source args from destination\n&quot;);
</span><span class="cx">    rprintf(F,&quot;     --ignore-errors         delete even if there are I/O errors\n&quot;);
</span><span class="lines">@@ -444,7 +444,7 @@
</span><span class="cx">    rprintf(F,&quot;     --max-delete=NUM        don't delete more than NUM files\n&quot;);
</span><span class="cx">    rprintf(F,&quot;     --max-size=SIZE         don't transfer any file larger than SIZE\n&quot;);
</span><span class="cx">    rprintf(F,&quot;     --min-size=SIZE         don't transfer any file smaller than SIZE\n&quot;);
</span><del>-@@ -857,6 +871,10 @@ static struct poptOption long_options[] = {
</del><ins>+@@ -855,6 +869,10 @@ static struct poptOption long_options[] = {
</ins><span class="cx">    {&quot;perms&quot;,           'p', POPT_ARG_VAL,    &amp;preserve_perms, 1, 0, 0 },
</span><span class="cx">    {&quot;no-perms&quot;,         0,  POPT_ARG_VAL,    &amp;preserve_perms, 0, 0, 0 },
</span><span class="cx">    {&quot;no-p&quot;,             0,  POPT_ARG_VAL,    &amp;preserve_perms, 0, 0, 0 },
</span><span class="lines">@@ -455,7 +455,7 @@
</span><span class="cx">    {&quot;executability&quot;,   'E', POPT_ARG_NONE,   &amp;preserve_executability, 0, 0, 0 },
</span><span class="cx">    {&quot;acls&quot;,            'A', POPT_ARG_NONE,   0, 'A', 0, 0 },
</span><span class="cx">    {&quot;no-acls&quot;,          0,  POPT_ARG_VAL,    &amp;preserve_acls, 0, 0, 0 },
</span><del>-@@ -943,6 +961,14 @@ static struct poptOption long_options[] = {
</del><ins>+@@ -941,6 +959,14 @@ static struct poptOption long_options[] = {
</ins><span class="cx">    {&quot;remove-source-files&quot;,0,POPT_ARG_VAL,    &amp;remove_source_files, 1, 0, 0 },
</span><span class="cx">    {&quot;force&quot;,            0,  POPT_ARG_VAL,    &amp;force_delete, 1, 0, 0 },
</span><span class="cx">    {&quot;no-force&quot;,         0,  POPT_ARG_VAL,    &amp;force_delete, 0, 0, 0 },
</span><span class="lines">@@ -470,7 +470,7 @@
</span><span class="cx">    {&quot;ignore-errors&quot;,    0,  POPT_ARG_VAL,    &amp;ignore_errors, 1, 0, 0 },
</span><span class="cx">    {&quot;no-ignore-errors&quot;, 0,  POPT_ARG_VAL,    &amp;ignore_errors, 0, 0, 0 },
</span><span class="cx">    {&quot;max-delete&quot;,       0,  POPT_ARG_INT,    &amp;max_delete, 0, 0, 0 },
</span><del>-@@ -2537,6 +2563,9 @@ void server_options(char **args, int *argc_p)
</del><ins>+@@ -2539,6 +2565,9 @@ void server_options(char **args, int *argc_p)
</ins><span class="cx">          if (xfer_dirs &amp;&amp; !recurse &amp;&amp; delete_mode &amp;&amp; am_sender)
</span><span class="cx">                  args[ac++] = &quot;--no-r&quot;;
</span><span class="cx">  
</span><span class="lines">@@ -480,7 +480,7 @@
</span><span class="cx">          if (do_compression &amp;&amp; def_compress_level != Z_DEFAULT_COMPRESSION) {
</span><span class="cx">                  if (asprintf(&amp;arg, &quot;--compress-level=%d&quot;, def_compress_level) &lt; 0)
</span><span class="cx">                          goto oom;
</span><del>-@@ -2624,6 +2653,16 @@ void server_options(char **args, int *argc_p)
</del><ins>+@@ -2626,6 +2655,16 @@ void server_options(char **args, int *argc_p)
</ins><span class="cx">                          args[ac++] = &quot;--delete-excluded&quot;;
</span><span class="cx">                  if (force_delete)
</span><span class="cx">                          args[ac++] = &quot;--force&quot;;
</span><span class="lines">@@ -557,16 +557,16 @@
</span><span class="cx">                                  /* We shouldn't have attempted to change uid
</span><span class="cx">                                   * or gid unless have the privilege. */
</span><span class="cx">                                  rsyserr(FERROR_XFER, errno, &quot;%s %s failed&quot;,
</span><del>-@@ -549,7 +583,7 @@ int set_file_attrs(const char *fname, struct file_struct *file, stat_x *sxp,
-                 flags |= ATTRS_SKIP_MTIME;
-         if (!(flags &amp; ATTRS_SKIP_MTIME)
-             &amp;&amp; cmp_time(sxp-&gt;st.st_mtime, file-&gt;modtime) != 0) {
</del><ins>+@@ -553,7 +587,7 @@ int set_file_attrs(const char *fname, struct file_struct *file, stat_x *sxp,
+           || (NSEC_BUMP(file) &amp;&amp; (uint32)sxp-&gt;st.ST_MTIME_NSEC != F_MOD_NSEC(file))
+ #endif
+           )) {
</ins><span class="cx"> -                int ret = set_modtime(fname, file-&gt;modtime, F_MOD_NSEC(file), sxp-&gt;st.st_mode);
</span><span class="cx"> +                int ret = set_modtime(fname, file-&gt;modtime, F_MOD_NSEC(file), sxp-&gt;st.st_mode, ST_FLAGS(sxp-&gt;st));
</span><span class="cx">                  if (ret &lt; 0) {
</span><span class="cx">                          rsyserr(FERROR_XFER, errno, &quot;failed to set times on %s&quot;,
</span><span class="cx">                                  full_fname(fname));
</span><del>-@@ -576,7 +610,7 @@ int set_file_attrs(const char *fname, struct file_struct *file, stat_x *sxp,
</del><ins>+@@ -580,7 +614,7 @@ int set_file_attrs(const char *fname, struct file_struct *file, stat_x *sxp,
</ins><span class="cx">  
</span><span class="cx">  #ifdef HAVE_CHMOD
</span><span class="cx">          if (!BITS_EQUAL(sxp-&gt;st.st_mode, new_mode, CHMOD_BITS)) {
</span><span class="lines">@@ -575,7 +575,7 @@
</span><span class="cx">                  if (ret &lt; 0) {
</span><span class="cx">                          rsyserr(FERROR_XFER, errno,
</span><span class="cx">                                  &quot;failed to set permissions on %s&quot;,
</span><del>-@@ -588,6 +622,19 @@ int set_file_attrs(const char *fname, struct file_struct *file, stat_x *sxp,
</del><ins>+@@ -592,6 +626,19 @@ int set_file_attrs(const char *fname, struct file_struct *file, stat_x *sxp,
</ins><span class="cx">          }
</span><span class="cx">  #endif
</span><span class="cx">  
</span><span class="lines">@@ -595,7 +595,7 @@
</span><span class="cx">          if (INFO_GTE(NAME, 2) &amp;&amp; flags &amp; ATTRS_REPORT) {
</span><span class="cx">                  if (updated)
</span><span class="cx">                          rprintf(FCLIENT, &quot;%s\n&quot;, fname);
</span><del>-@@ -662,7 +709,8 @@ int finish_transfer(const char *fname, const char *fnametmp,
</del><ins>+@@ -666,7 +713,8 @@ int finish_transfer(const char *fname, const char *fnametmp,
</ins><span class="cx">  
</span><span class="cx">          /* Change permissions before putting the file into place. */
</span><span class="cx">          set_file_attrs(fnametmp, file, NULL, fnamecmp,
</span><span class="lines">@@ -605,7 +605,7 @@
</span><span class="cx">  
</span><span class="cx">          /* move tmp file over real file */
</span><span class="cx">          if (DEBUG_GTE(RECV, 1))
</span><del>-@@ -679,6 +727,10 @@ int finish_transfer(const char *fname, const char *fnametmp,
</del><ins>+@@ -683,6 +731,10 @@ int finish_transfer(const char *fname, const char *fnametmp,
</ins><span class="cx">          }
</span><span class="cx">          if (ret == 0) {
</span><span class="cx">                  /* The file was moved into place (not copied), so it's done. */
</span><span class="lines">@@ -715,7 +715,7 @@
</span><span class="cx">       --max-delete=NUM        don't delete more than NUM files
</span><span class="cx">       --max-size=SIZE         don't transfer any file larger than SIZE
</span><span class="cx">       --min-size=SIZE         don't transfer any file smaller than SIZE
</span><del>-@@ -644,7 +648,8 @@ specified, in which case bf(-r) is not implied.
</del><ins>+@@ -646,7 +650,8 @@ specified, in which case bf(-r) is not implied.
</ins><span class="cx">  
</span><span class="cx">  Note that bf(-a) bf(does not preserve hardlinks), because
</span><span class="cx">  finding multiply-linked files is expensive.  You must separately
</span><span class="lines">@@ -725,7 +725,7 @@
</span><span class="cx">  
</span><span class="cx">  dit(--no-OPTION) You may turn off one or more implied options by prefixing
</span><span class="cx">  the option name with &quot;no-&quot;.  Not all options may be prefixed with a &quot;no-&quot;:
</span><del>-@@ -943,7 +948,7 @@ they would be using bf(--copy-links).
</del><ins>+@@ -950,7 +955,7 @@ they would be using bf(--copy-links).
</ins><span class="cx">  Without this option, if the sending side has replaced a directory with a
</span><span class="cx">  symlink to a directory, the receiving side will delete anything that is in
</span><span class="cx">  the way of the new symlink, including a directory hierarchy (as long as
</span><span class="lines">@@ -734,7 +734,7 @@
</span><span class="cx">  
</span><span class="cx">  See also bf(--keep-dirlinks) for an analogous option for the receiving
</span><span class="cx">  side.
</span><del>-@@ -1106,6 +1111,29 @@ Note that this option does not copy rsyncs special xattr values (e.g. those
</del><ins>+@@ -1113,6 +1118,29 @@ Note that this option does not copy rsyncs special xattr values (e.g. those
</ins><span class="cx">  used by bf(--fake-super)) unless you repeat the option (e.g. -XX).  This
</span><span class="cx">  &quot;copy all xattrs&quot; mode cannot be used with bf(--fake-super).
</span><span class="cx">  
</span><span class="lines">@@ -764,7 +764,7 @@
</span><span class="cx">  dit(bf(--chmod)) This option tells rsync to apply one or more
</span><span class="cx">  comma-separated &quot;chmod&quot; modes to the permission of the files in the
</span><span class="cx">  transfer.  The resulting value is treated as though it were the permissions
</span><del>-@@ -1435,12 +1463,13 @@ display as a &quot;*missing&quot; entry in the bf(--list-only) output.
</del><ins>+@@ -1442,12 +1470,13 @@ display as a &quot;*missing&quot; entry in the bf(--list-only) output.
</ins><span class="cx">  dit(bf(--ignore-errors)) Tells bf(--delete) to go ahead and delete files
</span><span class="cx">  even when there are I/O errors.
</span><span class="cx">  
</span><span class="lines">@@ -781,7 +781,7 @@
</span><span class="cx">  bf(--recursive) option was also enabled.
</span><span class="cx">  
</span><span class="cx">  dit(bf(--max-delete=NUM)) This tells rsync not to delete more than NUM
</span><del>-@@ -2074,7 +2103,7 @@ with older versions of rsync, but that also turns on the output of other
</del><ins>+@@ -2081,7 +2110,7 @@ with older versions of rsync, but that also turns on the output of other
</ins><span class="cx">  verbose messages).
</span><span class="cx">  
</span><span class="cx">  The &quot;%i&quot; escape has a cryptic output that is 11 letters long.  The general
</span><span class="lines">@@ -790,7 +790,7 @@
</span><span class="cx">  type of update being done, bf(X) is replaced by the file-type, and the
</span><span class="cx">  other letters represent attributes that may be output if they are being
</span><span class="cx">  modified.
</span><del>-@@ -2130,7 +2159,7 @@ quote(itemization(
</del><ins>+@@ -2137,7 +2166,7 @@ quote(itemization(
</ins><span class="cx">    sender's value (requires bf(--owner) and super-user privileges).
</span><span class="cx">    it() A bf(g) means the group is different and is being updated to the
</span><span class="cx">    sender's value (requires bf(--group) and the authority to set the group).
</span><span class="lines">@@ -1143,7 +1143,7 @@
</span><span class="cx"> diff -Nurp a/configure.sh b/configure.sh
</span><span class="cx"> --- a/configure.sh
</span><span class="cx"> +++ b/configure.sh
</span><del>-@@ -7652,6 +7652,7 @@ fi
</del><ins>+@@ -7687,6 +7687,7 @@ fi
</ins><span class="cx">  
</span><span class="cx">  for ac_func in waitpid wait4 getcwd strdup chown chmod lchmod mknod mkfifo \
</span><span class="cx">      fchmod fstat ftruncate strchr readlink link utime utimes lutimes strftime \
</span><span class="lines">@@ -1154,7 +1154,7 @@
</span><span class="cx"> diff -Nurp a/proto.h b/proto.h
</span><span class="cx"> --- a/proto.h
</span><span class="cx"> +++ b/proto.h
</span><del>-@@ -286,6 +286,8 @@ int read_ndx_and_attrs(int f_in, int f_o
</del><ins>+@@ -287,6 +287,8 @@ int read_ndx_and_attrs(int f_in, int f_o
</ins><span class="cx">  void free_sums(struct sum_struct *s);
</span><span class="cx">  mode_t dest_mode(mode_t flist_mode, mode_t stat_mode, int dflt_perms,
</span><span class="cx">                   int exists);
</span><span class="lines">@@ -1162,8 +1162,8 @@
</span><span class="cx"> +int undo_make_mutable(const char *fname, uint32 fileflags);
</span><span class="cx">  int set_file_attrs(const char *fname, struct file_struct *file, stat_x *sxp,
</span><span class="cx">                     const char *fnamecmp, int flags);
</span><del>- RETSIGTYPE sig_int(int sig_num);
-@@ -310,11 +312,12 @@ int do_unlink(const char *fname);
</del><ins>+ void sig_int(int sig_num);
+@@ -311,11 +313,12 @@ int do_unlink(const char *fname);
</ins><span class="cx">  int do_symlink(const char *lnk, const char *fname);
</span><span class="cx">  ssize_t do_readlink(const char *path, char *buf, size_t bufsiz);
</span><span class="cx">  int do_link(const char *fname1, const char *fname2);
</span><span class="lines">@@ -1178,7 +1178,7 @@
</span><span class="cx">  int do_rename(const char *fname1, const char *fname2);
</span><span class="cx">  int do_ftruncate(int fd, OFF_T size);
</span><span class="cx">  void trim_trailing_slashes(char *name);
</span><del>-@@ -353,7 +356,7 @@ void set_nonblocking(int fd);
</del><ins>+@@ -354,7 +357,7 @@ void set_nonblocking(int fd);
</ins><span class="cx">  void set_blocking(int fd);
</span><span class="cx">  int fd_pair(int fd[2]);
</span><span class="cx">  void print_child_argv(const char *prefix, char **cmd);
</span><span class="lines">@@ -1210,7 +1210,7 @@
</span><span class="cx">       \-\-max\-delete=NUM        don'\&amp;t delete more than NUM files
</span><span class="cx">       \-\-max\-size=SIZE         don'\&amp;t transfer any file larger than SIZE
</span><span class="cx">       \-\-min\-size=SIZE         don'\&amp;t transfer any file smaller than SIZE
</span><del>-@@ -743,7 +747,8 @@ specified, in which case \fB\-r\fP is no
</del><ins>+@@ -745,7 +749,8 @@ specified, in which case \fB\-r\fP is no
</ins><span class="cx">  .IP 
</span><span class="cx">  Note that \fB\-a\fP \fBdoes not preserve hardlinks\fP, because
</span><span class="cx">  finding multiply\-linked files is expensive.  You must separately
</span><span class="lines">@@ -1220,7 +1220,7 @@
</span><span class="cx">  .IP 
</span><span class="cx">  .IP &quot;\-\-no\-OPTION&quot;
</span><span class="cx">  You may turn off one or more implied options by prefixing
</span><del>-@@ -1080,7 +1085,7 @@ they would be using \fB\-\-copy\-links\f
</del><ins>+@@ -1087,7 +1092,7 @@ they would be using \fB\-\-copy\-links\f
</ins><span class="cx">  Without this option, if the sending side has replaced a directory with a
</span><span class="cx">  symlink to a directory, the receiving side will delete anything that is in
</span><span class="cx">  the way of the new symlink, including a directory hierarchy (as long as
</span><span class="lines">@@ -1229,7 +1229,7 @@
</span><span class="cx">  .IP 
</span><span class="cx">  See also \fB\-\-keep\-dirlinks\fP for an analogous option for the receiving
</span><span class="cx">  side.
</span><del>-@@ -1267,6 +1272,33 @@ Note that this option does not copy rsyn
</del><ins>+@@ -1274,6 +1279,33 @@ Note that this option does not copy rsyn
</ins><span class="cx">  used by \fB\-\-fake\-super\fP) unless you repeat the option (e.g. \-XX).  This
</span><span class="cx">  \(dq\&amp;copy all xattrs\(dq\&amp; mode cannot be used with \fB\-\-fake\-super\fP.
</span><span class="cx">  .IP 
</span><span class="lines">@@ -1263,7 +1263,7 @@
</span><span class="cx">  .IP &quot;\fB\-\-chmod\fP&quot;
</span><span class="cx">  This option tells rsync to apply one or more
</span><span class="cx">  comma\-separated \(dq\&amp;chmod\(dq\&amp; modes to the permission of the files in the
</span><del>-@@ -1633,13 +1665,14 @@ display as a \(dq\&amp;*missing\(dq\&amp; entry
</del><ins>+@@ -1640,13 +1672,14 @@ display as a \(dq\&amp;*missing\(dq\&amp; entry
</ins><span class="cx">  Tells \fB\-\-delete\fP to go ahead and delete files
</span><span class="cx">  even when there are I/O errors.
</span><span class="cx">  .IP 
</span><span class="lines">@@ -1281,7 +1281,7 @@
</span><span class="cx">  \fB\-\-recursive\fP option was also enabled.
</span><span class="cx">  .IP 
</span><span class="cx">  .IP &quot;\fB\-\-max\-delete=NUM\fP&quot;
</span><del>-@@ -2357,7 +2390,7 @@ with older versions of rsync, but that a
</del><ins>+@@ -2364,7 +2397,7 @@ with older versions of rsync, but that a
</ins><span class="cx">  verbose messages).
</span><span class="cx">  .IP 
</span><span class="cx">  The \(dq\&amp;%i\(dq\&amp; escape has a cryptic output that is 11 letters long.  The general
</span><span class="lines">@@ -1290,7 +1290,7 @@
</span><span class="cx">  type of update being done, \fBX\fP is replaced by the file\-type, and the
</span><span class="cx">  other letters represent attributes that may be output if they are being
</span><span class="cx">  modified.
</span><del>-@@ -2427,7 +2460,7 @@ sender\(cq\&amp;s value (requires \fB\-\-own
</del><ins>+@@ -2434,7 +2467,7 @@ sender\(cq\&amp;s value (requires \fB\-\-own
</ins><span class="cx">  A \fBg\fP means the group is different and is being updated to the
</span><span class="cx">  sender\(cq\&amp;s value (requires \fB\-\-group\fP and the authority to set the group).
</span><span class="cx">  .IP o 
</span></span></pre></div>
<a id="trunkdportsnetrsyncfilespatchhfscompressionoptionsdiff"></a>
<div class="modfile"><h4>Modified: trunk/dports/net/rsync/files/patch-hfs-compression-options.diff (143791 => 143792)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/dports/net/rsync/files/patch-hfs-compression-options.diff        2015-12-21 21:16:15 UTC (rev 143791)
+++ trunk/dports/net/rsync/files/patch-hfs-compression-options.diff        2015-12-21 21:32:41 UTC (rev 143792)
</span><span class="lines">@@ -1,7 +1,7 @@
</span><span class="cx"> diff --git a/options.c b/options.c
</span><span class="cx"> --- a/options.c
</span><span class="cx"> +++ b/options.c
</span><del>-@@ -579,6 +579,7 @@
</del><ins>+@@ -577,6 +577,7 @@
</ins><span class="cx">          char const *iconv = &quot;no &quot;;
</span><span class="cx">          char const *ipv6 = &quot;no &quot;;
</span><span class="cx">          char const *fileflags = &quot;no &quot;;
</span><span class="lines">@@ -9,7 +9,7 @@
</span><span class="cx">          STRUCT_STAT *dumstat;
</span><span class="cx">  
</span><span class="cx">  #if SUBPROTOCOL_VERSION != 0
</span><del>-@@ -618,6 +619,9 @@
</del><ins>+@@ -616,6 +617,9 @@
</ins><span class="cx">  #ifdef SUPPORT_FILEFLAGS
</span><span class="cx">          fileflags = &quot;&quot;;
</span><span class="cx">  #endif
</span><span class="lines">@@ -19,7 +19,7 @@
</span><span class="cx">  
</span><span class="cx">          rprintf(f, &quot;%s  version %s  protocol version %d%s\n&quot;,
</span><span class="cx">                  RSYNC_NAME, RSYNC_VERSION, PROTOCOL_VERSION, subprotocol);
</span><del>-@@ -631,8 +635,10 @@
</del><ins>+@@ -629,8 +633,10 @@
</ins><span class="cx">                  (int)(sizeof (int64) * 8));
</span><span class="cx">          rprintf(f, &quot;    %ssocketpairs, %shardlinks, %ssymlinks, %sIPv6, batchfiles, %sinplace,\n&quot;,
</span><span class="cx">                  got_socketpair, hardlinks, links, ipv6, have_inplace);
</span></span></pre></div>
<a id="trunkdportsnetrsyncfilespatchhfscompressiondiff"></a>
<div class="modfile"><h4>Modified: trunk/dports/net/rsync/files/patch-hfs-compression.diff (143791 => 143792)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/dports/net/rsync/files/patch-hfs-compression.diff        2015-12-21 21:16:15 UTC (rev 143791)
+++ trunk/dports/net/rsync/files/patch-hfs-compression.diff        2015-12-21 21:32:41 UTC (rev 143792)
</span><span class="lines">@@ -43,7 +43,7 @@
</span><span class="cx">  extern int preserve_links;
</span><span class="cx">  extern int preserve_devices;
</span><span class="cx">  extern int preserve_specials;
</span><del>-@@ -1762,6 +1763,14 @@ static void recv_generator(char *fname, struct file_struct *file, int ndx,
</del><ins>+@@ -1776,6 +1777,14 @@ static void recv_generator(char *fname, struct file_struct *file, int ndx,
</ins><span class="cx">                                          fname, fnamecmpbuf);
</span><span class="cx">                          }
</span><span class="cx">                          sx.st.st_size = F_LENGTH(fuzzy_file);
</span><span class="lines">@@ -58,7 +58,7 @@
</span><span class="cx">                          statret = 0;
</span><span class="cx">                          fnamecmp = fnamecmpbuf;
</span><span class="cx">                  }
</span><del>-@@ -1929,6 +1938,18 @@ static void recv_generator(char *fname, struct file_struct *file, int ndx,
</del><ins>+@@ -1943,6 +1952,18 @@ static void recv_generator(char *fname, struct file_struct *file, int ndx,
</ins><span class="cx">          if (read_batch)
</span><span class="cx">                  goto cleanup;
</span><span class="cx">  
</span><span class="lines">@@ -162,7 +162,7 @@
</span><span class="cx">  extern int protocol_version;
</span><span class="cx">  extern int force_change;
</span><span class="cx">  extern int file_total;
</span><del>-@@ -107,6 +112,7 @@ int daemon_over_rsh = 0;
</del><ins>+@@ -108,6 +113,7 @@ int daemon_over_rsh = 0;
</ins><span class="cx">  mode_t orig_umask = 0;
</span><span class="cx">  int batch_gen_fd = -1;
</span><span class="cx">  int sender_keeps_checksum = 0;
</span><span class="lines">@@ -170,7 +170,7 @@
</span><span class="cx">  
</span><span class="cx">  /* There's probably never more than at most 2 outstanding child processes,
</span><span class="cx">   * but set it higher, just in case. */
</span><del>-@@ -559,6 +565,43 @@ static pid_t do_cmd(char *cmd, char *machine, char *user, char **remote_argv, in
</del><ins>+@@ -560,6 +566,43 @@ static pid_t do_cmd(char *cmd, char *machine, char *user, char **remote_argv, in
</ins><span class="cx">          return 0; /* not reached */
</span><span class="cx">  }
</span><span class="cx">  
</span><span class="lines">@@ -214,7 +214,7 @@
</span><span class="cx">  /* The receiving side operates in one of two modes:
</span><span class="cx">   *
</span><span class="cx">   * 1. it receives any number of files into a destination directory,
</span><del>-@@ -617,6 +660,9 @@ static char *get_local_name(struct file_list *flist, char *dest_path)
</del><ins>+@@ -618,6 +661,9 @@ static char *get_local_name(struct file_list *flist, char *dest_path)
</ins><span class="cx">                                  exit_cleanup(RERR_FILESELECT);
</span><span class="cx">                          }
</span><span class="cx">                          filesystem_dev = st.st_dev; /* ensures --force works right w/-x */
</span><span class="lines">@@ -224,7 +224,7 @@
</span><span class="cx">                          return NULL;
</span><span class="cx">                  }
</span><span class="cx">                  if (file_total &gt; 1) {
</span><del>-@@ -677,7 +723,9 @@ static char *get_local_name(struct file_list *flist, char *dest_path)
</del><ins>+@@ -678,7 +724,9 @@ static char *get_local_name(struct file_list *flist, char *dest_path)
</ins><span class="cx">                                  full_fname(dest_path));
</span><span class="cx">                          exit_cleanup(RERR_FILESELECT);
</span><span class="cx">                  }
</span><span class="lines">@@ -235,7 +235,7 @@
</span><span class="cx">                  return NULL;
</span><span class="cx">          }
</span><span class="cx">  
</span><del>-@@ -697,6 +745,9 @@ static char *get_local_name(struct file_list *flist, char *dest_path)
</del><ins>+@@ -698,6 +746,9 @@ static char *get_local_name(struct file_list *flist, char *dest_path)
</ins><span class="cx">                          full_fname(dest_path));
</span><span class="cx">                  exit_cleanup(RERR_FILESELECT);
</span><span class="cx">          }
</span><span class="lines">@@ -256,7 +256,7 @@
</span><span class="cx">  int preserve_perms = 0;
</span><span class="cx">  int preserve_fileflags = 0;
</span><span class="cx">  int preserve_executability = 0;
</span><del>-@@ -713,6 +714,10 @@ void usage(enum logcode F)
</del><ins>+@@ -711,6 +712,10 @@ void usage(enum logcode F)
</ins><span class="cx">  #ifdef SUPPORT_XATTRS
</span><span class="cx">    rprintf(F,&quot; -X, --xattrs                preserve extended attributes\n&quot;);
</span><span class="cx">  #endif
</span><span class="lines">@@ -267,7 +267,7 @@
</span><span class="cx">    rprintf(F,&quot; -o, --owner                 preserve owner (super-user only)\n&quot;);
</span><span class="cx">    rprintf(F,&quot; -g, --group                 preserve group\n&quot;);
</span><span class="cx">    rprintf(F,&quot;     --devices               preserve device files (super-user only)\n&quot;);
</span><del>-@@ -974,6 +979,12 @@ static struct poptOption long_options[] = {
</del><ins>+@@ -972,6 +977,12 @@ static struct poptOption long_options[] = {
</ins><span class="cx">    {&quot;force-uchange&quot;,    0,  POPT_ARG_VAL,    &amp;force_change, USR_IMMUTABLE, 0, 0 },
</span><span class="cx">    {&quot;force-schange&quot;,    0,  POPT_ARG_VAL,    &amp;force_change, SYS_IMMUTABLE, 0, 0 },
</span><span class="cx">  #endif
</span><span class="lines">@@ -280,7 +280,7 @@
</span><span class="cx">    {&quot;ignore-errors&quot;,    0,  POPT_ARG_VAL,    &amp;ignore_errors, 1, 0, 0 },
</span><span class="cx">    {&quot;no-ignore-errors&quot;, 0,  POPT_ARG_VAL,    &amp;ignore_errors, 0, 0, 0 },
</span><span class="cx">    {&quot;max-delete&quot;,       0,  POPT_ARG_INT,    &amp;max_delete, 0, 0, 0 },
</span><del>-@@ -1974,6 +1985,15 @@ int parse_arguments(int *argc_p, const char ***argv_p)
</del><ins>+@@ -1972,6 +1983,15 @@ int parse_arguments(int *argc_p, const char ***argv_p)
</ins><span class="cx">          }
</span><span class="cx">  #endif
</span><span class="cx">  
</span><span class="lines">@@ -296,7 +296,7 @@
</span><span class="cx">          if (block_size &gt; MAX_BLOCK_SIZE) {
</span><span class="cx">                  snprintf(err_buf, sizeof err_buf,
</span><span class="cx">                           &quot;--block-size=%lu is too large (max: %u)\n&quot;, block_size, MAX_BLOCK_SIZE);
</span><del>-@@ -2573,6 +2593,11 @@ void server_options(char **args, int *argc_p)
</del><ins>+@@ -2575,6 +2595,11 @@ void server_options(char **args, int *argc_p)
</ins><span class="cx">          if (preserve_fileflags)
</span><span class="cx">                  args[ac++] = &quot;--fileflags&quot;;
</span><span class="cx">  
</span><span class="lines">@@ -332,12 +332,12 @@
</span><span class="cx">                  flags |= ATTRS_SKIP_CRTIME;
</span><span class="cx">          if (!(flags &amp; ATTRS_SKIP_MTIME)
</span><span class="cx"> +#ifdef SUPPORT_HFS_COMPRESSION
</span><del>-+            &amp;&amp; !(sxp-&gt;st.st_flags &amp; UF_COMPRESSED) /* setting this alters mtime, so defer to after set_fileflags */
</del><ins>++         &amp;&amp; !(sxp-&gt;st.st_flags &amp; UF_COMPRESSED) /* setting this alters mtime, so defer to after set_fileflags */
</ins><span class="cx"> +#endif
</span><del>-             &amp;&amp; cmp_time(sxp-&gt;st.st_mtime, file-&gt;modtime) != 0) {
-                 int ret = set_modtime(fname, file-&gt;modtime, F_MOD_NSEC(file), sxp-&gt;st.st_mode, ST_FLAGS(sxp-&gt;st));
-                 if (ret &lt; 0) {
-@@ -643,6 +652,16 @@ int set_file_attrs(const char *fname, struct file_struct *file, stat_x *sxp,
</del><ins>+          &amp;&amp; (sxp-&gt;st.st_mtime != file-&gt;modtime
+ #ifdef ST_MTIME_NSEC
+           || (NSEC_BUMP(file) &amp;&amp; (uint32)sxp-&gt;st.ST_MTIME_NSEC != F_MOD_NSEC(file))
+@@ -647,6 +656,16 @@ int set_file_attrs(const char *fname, struct file_struct *file, stat_x *sxp,
</ins><span class="cx">                   &amp;&amp; !set_fileflags(fname, fileflags))
</span><span class="cx">                          goto cleanup;
</span><span class="cx">                  updated = 1;
</span><span class="lines">@@ -387,7 +387,7 @@
</span><span class="cx">   -o, --owner                 preserve owner (super-user only)
</span><span class="cx">   -g, --group                 preserve group
</span><span class="cx">       --devices               preserve device files (super-user only)
</span><del>-@@ -1135,6 +1137,42 @@ flags on files and directories that are being updated or deleted on the
</del><ins>+@@ -1142,6 +1144,42 @@ flags on files and directories that are being updated or deleted on the
</ins><span class="cx">  receiving side.  It does not try to affect user flags.  This option overrides
</span><span class="cx">  bf(--force-change) and bf(--force-uchange).
</span><span class="cx">  
</span><span class="lines">@@ -763,7 +763,7 @@
</span><span class="cx">   \-o, \-\-owner                 preserve owner (super\-user only)
</span><span class="cx">   \-g, \-\-group                 preserve group
</span><span class="cx">       \-\-devices               preserve device files (super\-user only)
</span><del>-@@ -1300,6 +1302,44 @@ flags on files and directories that are
</del><ins>+@@ -1307,6 +1309,44 @@ flags on files and directories that are
</ins><span class="cx">  receiving side.  It does not try to affect user flags.  This option overrides
</span><span class="cx">  \fB\-\-force\-change\fP and \fB\-\-force\-uchange\fP.
</span><span class="cx">  .IP 
</span></span></pre>
</div>
</div>

</body>
</html>