X-Git-Url: https://mattmccutchen.net/rsync/rsync-patches.git/blobdiff_plain/60a8bf367b7ed061f1c8ff5723b73ef9ccb964aa..686ce3aa4f643829bdde0d9908228adb6b541f6d:/acls.diff diff --git a/acls.diff b/acls.diff index ca83dc4..94a7cd0 100644 --- a/acls.diff +++ b/acls.diff @@ -1742,7 +1742,7 @@ latest ACL-enabling patch to send files to an older ACL-enabled rsync. } - if (set_file_attrs(fname, file, statret ? NULL : &st, 0) + if (set_file_attrs(fname, file, statret ? NULL : &sx, 0) - && verbose && code && f_out != -1) + && verbose && code != FNONE && f_out != -1) rprintf(code, "%s/\n", fname); if (delete_during && f_out != -1 && !phase && dry_run < 2 && (file->flags & FLAG_DEL_HERE)) @@ -1795,7 +1795,7 @@ latest ACL-enabling patch to send files to an older ACL-enabled rsync. statret = -1; } else if (basis_dir[0] != NULL) { if (try_dests_non(file, fname, ndx, itemizing, -@@ -1014,7 +1066,7 @@ static void recv_generator(char *fname, +@@ -1015,7 +1067,7 @@ static void recv_generator(char *fname, } } if (preserve_hard_links && file->link_u.links @@ -1804,7 +1804,7 @@ latest ACL-enabling patch to send files to an older ACL-enabled rsync. itemizing, code, HL_SKIP)) return; if (do_symlink(file->u.link,fname) != 0) { -@@ -1023,7 +1075,7 @@ static void recv_generator(char *fname, +@@ -1024,7 +1076,7 @@ static void recv_generator(char *fname, } else { set_file_attrs(fname, file, NULL, 0); if (itemizing) { @@ -1812,9 +1812,9 @@ latest ACL-enabling patch to send files to an older ACL-enabled rsync. + itemize(file, ndx, statret, &sx, ITEM_LOCAL_CHANGE, 0, NULL); } - if (code && verbose) { -@@ -1054,18 +1106,22 @@ static void recv_generator(char *fname, - itemizing = code = 0; + if (code != FNONE && verbose) { +@@ -1056,18 +1108,22 @@ static void recv_generator(char *fname, + code = FNONE; } } +#ifdef SUPPORT_ACLS @@ -1844,7 +1844,7 @@ latest ACL-enabling patch to send files to an older ACL-enabled rsync. statret = -1; if (verbose > 2) { rprintf(FINFO,"mknod(%s,0%o,0x%x)\n", -@@ -1078,7 +1134,7 @@ static void recv_generator(char *fname, +@@ -1080,7 +1136,7 @@ static void recv_generator(char *fname, } else { set_file_attrs(fname, file, NULL, 0); if (itemizing) { @@ -1852,8 +1852,8 @@ latest ACL-enabling patch to send files to an older ACL-enabled rsync. + itemize(file, ndx, statret, &sx, ITEM_LOCAL_CHANGE, 0, NULL); } - if (code && verbose) -@@ -1092,14 +1148,14 @@ static void recv_generator(char *fname, + if (code != FNONE && verbose) +@@ -1094,14 +1150,14 @@ static void recv_generator(char *fname, } } else { if (itemizing) @@ -1871,7 +1871,7 @@ latest ACL-enabling patch to send files to an older ACL-enabled rsync. } if (!S_ISREG(file->mode)) { -@@ -1133,7 +1189,7 @@ static void recv_generator(char *fname, +@@ -1135,7 +1191,7 @@ static void recv_generator(char *fname, } if (update_only && statret == 0 @@ -1880,7 +1880,7 @@ latest ACL-enabling patch to send files to an older ACL-enabled rsync. if (verbose > 1) rprintf(FINFO, "%s is newer\n", fname); return; -@@ -1142,20 +1198,20 @@ static void recv_generator(char *fname, +@@ -1144,20 +1200,20 @@ static void recv_generator(char *fname, fnamecmp = fname; fnamecmp_type = FNAMECMP_FNAME; @@ -1905,7 +1905,7 @@ latest ACL-enabling patch to send files to an older ACL-enabled rsync. } if (j >= 0) { fnamecmp = fnamecmpbuf; -@@ -1165,7 +1221,7 @@ static void recv_generator(char *fname, +@@ -1167,7 +1223,7 @@ static void recv_generator(char *fname, } real_ret = statret; @@ -1914,7 +1914,7 @@ latest ACL-enabling patch to send files to an older ACL-enabled rsync. if (partial_dir && (partialptr = partial_dir_fname(fname)) != NULL && link_stat(partialptr, &partial_st, 0) == 0 -@@ -1184,7 +1240,7 @@ static void recv_generator(char *fname, +@@ -1186,7 +1242,7 @@ static void recv_generator(char *fname, rprintf(FINFO, "fuzzy basis selected for %s: %s\n", fname, fnamecmpbuf); } @@ -1923,7 +1923,7 @@ latest ACL-enabling patch to send files to an older ACL-enabled rsync. statret = 0; fnamecmp = fnamecmpbuf; fnamecmp_type = FNAMECMP_FUZZY; -@@ -1193,7 +1249,7 @@ static void recv_generator(char *fname, +@@ -1195,7 +1251,7 @@ static void recv_generator(char *fname, if (statret != 0) { if (preserve_hard_links && file->link_u.links @@ -1932,7 +1932,7 @@ latest ACL-enabling patch to send files to an older ACL-enabled rsync. itemizing, code, HL_SKIP)) return; if (stat_errno == ENOENT) -@@ -1203,39 +1259,52 @@ static void recv_generator(char *fname, +@@ -1205,39 +1261,52 @@ static void recv_generator(char *fname, return; } @@ -1992,7 +1992,7 @@ latest ACL-enabling patch to send files to an older ACL-enabled rsync. fnamecmp = partialptr; fnamecmp_type = FNAMECMP_PARTIAL_DIR; statret = 0; -@@ -1259,17 +1328,21 @@ static void recv_generator(char *fname, +@@ -1261,17 +1330,21 @@ static void recv_generator(char *fname, pretend_missing: /* pretend the file didn't exist */ if (preserve_hard_links && file->link_u.links @@ -2017,7 +2017,7 @@ latest ACL-enabling patch to send files to an older ACL-enabled rsync. } if (!(back_file = make_file(fname, NULL, NULL, 0, NO_FILTERS))) { close(fd); -@@ -1280,7 +1353,7 @@ static void recv_generator(char *fname, +@@ -1282,7 +1355,7 @@ static void recv_generator(char *fname, full_fname(backupptr)); free(back_file); close(fd); @@ -2026,7 +2026,7 @@ latest ACL-enabling patch to send files to an older ACL-enabled rsync. } if ((f_copy = do_open(backupptr, O_WRONLY | O_CREAT | O_TRUNC | O_EXCL, 0600)) < 0) { -@@ -1288,14 +1361,14 @@ static void recv_generator(char *fname, +@@ -1290,14 +1363,14 @@ static void recv_generator(char *fname, full_fname(backupptr)); free(back_file); close(fd); @@ -2043,7 +2043,7 @@ latest ACL-enabling patch to send files to an older ACL-enabled rsync. } if (verbose > 2) -@@ -1313,24 +1386,32 @@ static void recv_generator(char *fname, +@@ -1315,24 +1388,32 @@ static void recv_generator(char *fname, iflags |= ITEM_BASIS_TYPE_FOLLOWS; if (fnamecmp_type == FNAMECMP_FUZZY) iflags |= ITEM_XNAME_FOLLOWS; @@ -2081,7 +2081,7 @@ latest ACL-enabling patch to send files to an older ACL-enabled rsync. if (f_copy >= 0) { close(f_copy); -@@ -1343,6 +1424,13 @@ static void recv_generator(char *fname, +@@ -1345,6 +1426,13 @@ static void recv_generator(char *fname, } close(fd); @@ -2095,7 +2095,7 @@ latest ACL-enabling patch to send files to an older ACL-enabled rsync. } void generate_files(int f_out, struct file_list *flist, char *local_name) -@@ -1402,6 +1490,8 @@ void generate_files(int f_out, struct fi +@@ -1404,6 +1492,8 @@ void generate_files(int f_out, struct fi * notice that and let us know via the redo pipe (or its closing). */ ignore_timeout = 1; @@ -2160,10 +2160,10 @@ latest ACL-enabling patch to send files to an older ACL-enabled rsync. statret = 1; - st = &st3; + sxp->st = st3; - if (verbose < 2 || !stdout_format_has_i) - itemizing = code = 0; - break; -@@ -223,12 +228,16 @@ int hard_link_check(struct file_struct * + if (verbose < 2 || !stdout_format_has_i) { + itemizing = 0; + code = FNONE; +@@ -225,12 +230,16 @@ int hard_link_check(struct file_struct * if (!unchanged_file(cmpbuf, file, &st3)) continue; statret = 1; @@ -2183,7 +2183,7 @@ latest ACL-enabling patch to send files to an older ACL-enabled rsync. toname, &st2, itemizing, code); if (remove_source_files == 1 && do_xfers) { char numbuf[4]; -@@ -246,7 +255,7 @@ int hard_link_check(struct file_struct * +@@ -248,7 +257,7 @@ int hard_link_check(struct file_struct * #ifdef SUPPORT_HARD_LINKS int hard_link_one(struct file_struct *file, int ndx, char *fname, @@ -2192,7 +2192,7 @@ latest ACL-enabling patch to send files to an older ACL-enabled rsync. int itemizing, enum logcode code) { if (do_link(toname, fname)) { -@@ -262,7 +271,11 @@ int hard_link_one(struct file_struct *fi +@@ -264,7 +273,11 @@ int hard_link_one(struct file_struct *fi } if (itemizing) { @@ -2205,7 +2205,7 @@ latest ACL-enabling patch to send files to an older ACL-enabled rsync. ITEM_LOCAL_CHANGE | ITEM_XNAME_FOLLOWS, 0, terse ? "" : toname); } -@@ -279,11 +292,12 @@ void hard_link_cluster(struct file_struc +@@ -281,11 +294,12 @@ void hard_link_cluster(struct file_struc #ifdef SUPPORT_HARD_LINKS char hlink1[MAXPATHLEN]; char *hlink2; @@ -2220,7 +2220,7 @@ latest ACL-enabling patch to send files to an older ACL-enabled rsync. return; if (!(file->flags & FLAG_HLINK_TOL)) { while (!(file->flags & FLAG_HLINK_EOL)) { -@@ -297,9 +311,13 @@ void hard_link_cluster(struct file_struc +@@ -299,9 +313,13 @@ void hard_link_cluster(struct file_struc if (file->F_HLINDEX != SKIPPED_LINK) continue; hlink2 = f_name(file, NULL); @@ -5518,7 +5518,7 @@ latest ACL-enabling patch to send files to an older ACL-enabled rsync. +int sys_acl_free_qualifier(void *qual, SMB_ACL_TAG_T tagtype); --- old/log.c +++ new/log.c -@@ -609,8 +609,10 @@ static void log_formatted(enum logcode c +@@ -615,8 +615,10 @@ static void log_formatted(enum logcode c n[5] = !(iflags & ITEM_REPORT_PERMS) ? '.' : 'p'; n[6] = !(iflags & ITEM_REPORT_OWNER) ? '.' : 'o'; n[7] = !(iflags & ITEM_REPORT_GROUP) ? '.' : 'g'; @@ -5531,17 +5531,6 @@ latest ACL-enabling patch to send files to an older ACL-enabled rsync. if (iflags & (ITEM_IS_NEW|ITEM_MISSING_DATA)) { char ch = iflags & ITEM_IS_NEW ? '+' : '?'; ---- old/mkproto.awk -+++ new/mkproto.awk -@@ -58,7 +58,7 @@ BEGIN { - next; - } - --!/^OFF_T|^size_t|^off_t|^pid_t|^unsigned|^mode_t|^DIR|^user|^int|^char|^uint|^uchar|^short|^struct|^BOOL|^void|^time|^const|^RETSIGTYPE/ { -+!/^OFF_T|^size_t|^off_t|^pid_t|^id_t|^unsigned|^mode_t|^DIR|^user|^int|^char|^uint|^uchar|^short|^struct|^BOOL|^void|^time|^const|^RETSIGTYPE/ { - next; - } - --- old/options.c +++ new/options.c @@ -47,6 +47,7 @@ int copy_dirlinks = 0; @@ -5612,7 +5601,7 @@ latest ACL-enabling patch to send files to an older ACL-enabled rsync. {"times", 't', POPT_ARG_VAL, &preserve_times, 1, 0, 0 }, {"no-times", 0, POPT_ARG_VAL, &preserve_times, 0, 0, 0 }, {"no-t", 0, POPT_ARG_VAL, &preserve_times, 0, 0, 0 }, -@@ -1084,6 +1096,24 @@ int parse_arguments(int *argc, const cha +@@ -1082,6 +1094,24 @@ int parse_arguments(int *argc, const cha usage(FINFO); exit_cleanup(0); @@ -5637,7 +5626,7 @@ latest ACL-enabling patch to send files to an older ACL-enabled rsync. default: /* A large opt value means that set_refuse_options() * turned this option off. */ -@@ -1529,6 +1559,10 @@ void server_options(char **args,int *arg +@@ -1523,6 +1553,10 @@ void server_options(char **args,int *arg if (preserve_hard_links) argstr[x++] = 'H'; @@ -5658,7 +5647,7 @@ latest ACL-enabling patch to send files to an older ACL-enabled rsync. extern struct stats stats; extern char *stdout_format; extern char *tmpdir; -@@ -349,6 +350,10 @@ int recv_files(int f_in, struct file_lis +@@ -350,6 +351,10 @@ int recv_files(int f_in, struct file_lis int itemizing = am_server ? logfile_format_has_i : stdout_format_has_i; enum logcode log_code = log_before_transfer ? FLOG : FINFO; int max_phase = protocol_version >= 29 ? 2 : 1; @@ -5669,7 +5658,7 @@ latest ACL-enabling patch to send files to an older ACL-enabled rsync. int i, recv_ok; if (verbose > 2) -@@ -549,7 +554,16 @@ int recv_files(int f_in, struct file_lis +@@ -553,7 +558,16 @@ int recv_files(int f_in, struct file_lis * mode based on the local permissions and some heuristics. */ if (!preserve_perms) { int exists = fd1 != -1; @@ -5904,9 +5893,9 @@ latest ACL-enabling patch to send files to an older ACL-enabled rsync. #include "byteorder.h" #include "lib/mdfour.h" #include "lib/wildmatch.h" -@@ -668,6 +688,16 @@ struct chmod_mode_struct; - +@@ -669,6 +689,16 @@ struct chmod_mode_struct; #define UNUSED(x) x __attribute__((__unused__)) + #define NORETURN __attribute__((__noreturn__)) +typedef struct { + STRUCT_STAT st; @@ -5940,7 +5929,7 @@ latest ACL-enabling patch to send files to an older ACL-enabled rsync. -o, --owner preserve owner (super-user only) -g, --group preserve group --devices preserve device files (super-user only) -@@ -747,7 +748,9 @@ quote(itemize( +@@ -745,7 +746,9 @@ quote(itemization( permissions, though the bf(--executability) option might change just the execute permission for the file. it() New files get their "normal" permission bits set to the source @@ -5951,7 +5940,7 @@ latest ACL-enabling patch to send files to an older ACL-enabled rsync. their special permission bits disabled except in the case where a new directory inherits a setgid bit from its parent directory. )) -@@ -778,9 +781,11 @@ The preservation of the destination's se +@@ -776,9 +779,11 @@ The preservation of the destination's se directories when bf(--perms) is off was added in rsync 2.6.7. Older rsync versions erroneously preserved the three special permission bits for newly-created files when bf(--perms) was off, while overriding the @@ -5966,7 +5955,7 @@ latest ACL-enabling patch to send files to an older ACL-enabled rsync. dit(bf(-E, --executability)) This option causes rsync to preserve the executability (or non-executability) of regular files when bf(--perms) is -@@ -798,6 +803,15 @@ quote(itemize( +@@ -796,6 +801,15 @@ quote(itemization( If bf(--perms) is enabled, this option is ignored. @@ -5982,7 +5971,7 @@ latest ACL-enabling patch to send files to an older ACL-enabled rsync. dit(bf(--chmod)) This option tells rsync to apply one or more comma-separated "chmod" strings to the permission of the files in the transfer. The resulting value is treated as though it was the permissions -@@ -1383,8 +1397,8 @@ if the receiving rsync is at least versi +@@ -1381,8 +1395,8 @@ if the receiving rsync is at least versi with older versions of rsync, but that also turns on the output of other verbose messages). @@ -5993,7 +5982,7 @@ latest ACL-enabling patch to send files to an older ACL-enabled rsync. 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. -@@ -1433,7 +1447,11 @@ quote(itemize( +@@ -1431,7 +1445,11 @@ 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). @@ -6743,7 +6732,7 @@ latest ACL-enabling patch to send files to an older ACL-enabled rsync. for (i = 0; i < flist->count; i++) --- old/util.c +++ new/util.c -@@ -1550,3 +1550,31 @@ int bitbag_next_bit(struct bitbag *bb, i +@@ -1468,3 +1468,31 @@ int bitbag_next_bit(struct bitbag *bb, i return -1; }