Several changes missing from [HEAD] fileflags.diff
Mike Bombich
mike at bombich.com
Tue Mar 4 16:40:26 GMT 2008
Looking at http://rsync.samba.org/ftp/rsync/patches/fileflags.diff --
It looks like the changes from fileflags-fixes.diff patch were applied
to the patch from http://rsync.samba.org/ftp/rsync/rsync-patches-3.0.0.tar.gz
, but this entire chunk of the that original diff file was lost:
> diff -up a/config.h.in b/config.h.in
> --- a/config.h.in
> +++ b/config.h.in
> @@ -64,6 +64,9 @@
> /* Define to 1 if vsprintf has a C99-compatible return value */
> #undef HAVE_C99_VSNPRINTF
>
> +/* Define to 1 if you have the `chflags' function. */
> +#undef HAVE_CHFLAGS
> +
> /* Define to 1 if you have the `chmod' function. */
> #undef HAVE_CHMOD
>
> diff -up a/configure.sh b/configure.sh
> --- a/configure.sh
> +++ b/configure.sh
> @@ -14789,12 +14789,13 @@ fi
>
>
>
> +
> for ac_func in waitpid wait4 getcwd strdup chown chmod lchmod mknod
> mkfifo \
> fchmod fstat ftruncate strchr readlink link utime utimes
> lutimes strftime \
> memmove lchown vsnprintf snprintf vasprintf asprintf setsid
> glob strpbrk \
> strlcat strlcpy strtol mallinfo getgroups setgroups geteuid
> getegid \
> setlocale setmode open64 lseek64 mkstemp64 mtrace va_copy
> __va_copy \
> - strerror putenv iconv_open locale_charset nl_langinfo getxattr \
> + chflags strerror putenv iconv_open locale_charset nl_langinfo
> getxattr \
> extattr_get_link sigaction sigprocmask setattrlist
> do
> as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
> diff -up a/proto.h b/proto.h
> --- a/proto.h
> +++ b/proto.h
> @@ -269,6 +269,8 @@ int read_ndx_and_attrs(int f_in, int *if
> void free_sums(struct sum_struct *s);
> mode_t dest_mode(mode_t flist_mode, mode_t stat_mode, int dflt_perms,
> int exists);
> +int make_mutable(const char *fname, mode_t mode, uint32 fileflags,
> uint32 iflags);
> +int undo_make_mutable(const char *fname, uint32 fileflags);
> int set_file_attrs(const char *fname, struct file_struct *file,
> stat_x *sxp,
> const char *fnamecmp, int flags);
> RETSIGTYPE sig_int(UNUSED(int val));
> @@ -293,11 +295,12 @@ int sock_exec(const char *prog);
> int do_unlink(const char *fname);
> int do_symlink(const char *fname1, const char *fname2);
> int do_link(const char *fname1, const char *fname2);
> -int do_lchown(const char *path, uid_t owner, gid_t group);
> +int do_lchown(const char *path, uid_t owner, gid_t group, mode_t
> mode, uint32 fileflags);
> int do_mknod(const char *pathname, mode_t mode, dev_t dev);
> int do_rmdir(const char *pathname);
> int do_open(const char *pathname, int flags, mode_t mode);
> -int do_chmod(const char *path, mode_t mode);
> +int do_chmod(const char *path, mode_t mode, uint32 fileflags);
> +int do_chflags(const char *path, uint32 fileflags);
> int do_rename(const char *fname1, const char *fname2);
> void trim_trailing_slashes(char *name);
> int do_mkdir(char *fname, mode_t mode);
> @@ -326,7 +329,7 @@ int fd_pair(int fd[2]);
> void print_child_argv(const char *prefix, char **cmd);
> NORETURN void out_of_memory(const char *str);
> NORETURN void overflow_exit(const char *str);
> -int set_modtime(const char *fname, time_t modtime, mode_t mode);
> +int set_modtime(const char *fname, time_t modtime, mode_t mode,
> uint32 fileflags);
> int mkdir_defmode(char *fname);
> int create_directory_path(char *fname);
> int full_write(int desc, const char *ptr, size_t len);
> diff -up a/rsync.1 b/rsync.1
> --- a/rsync.1
> +++ b/rsync.1
> @@ -413,6 +413,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
> + \-\-fileflags preserve file-flags (aka chflags)
> \-E, \-\-executability preserve executability
> \-\-chmod=CHMOD affect file and/or directory
> permissions
> \-A, \-\-acls preserve ACLs (implies \-p)
> @@ -444,7 +445,10 @@ to the detailed description below for a
> \-\-delete\-after receiver deletes after transfer,
> not before
> \-\-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
> + \-\-force\-delete force deletion of dirs even if not
> empty
> + \-\-force\-change affect user/system immutable files/
> dirs
> + \-\-force\-uchange affect user-immutable files/dirs
> + \-\-force\-schange affect system-immutable files/dirs
> \-\-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
> @@ -631,7 +635,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
> -specify \fB\-H\fP.
> +specify \fB\-H\fP. Note also that for backward compatibility, \fB\-
> a\fP
> +currently does \fBnot\fP imply the \fB\-\-fileflags\fP option.
> .IP
> .IP "\-\-no\-OPTION"
> You may turn off one or more implied options by prefixing
> @@ -907,7 +912,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
> -\fB\-\-force\fP or \fB\-\-delete\fP is in effect).
> +\fB\-\-force\-delete\fP or \fB\-\-delete\fP is in effect).
> .IP
> See also \fB\-\-keep\-dirlinks\fP for an analogous option for the
> receiving
> side.
> @@ -1062,6 +1067,33 @@ super-user copies all namespaces except
> the user.* namespace. To be able to backup and restore non-user
> namespaces as
> a normal user, see the \fB\-\-fake\-super\fP option.
> .IP
> +.IP "\fB\-\-fileflags\fP"
> +This option causes rsync to update the file-flags to be
> +the same as the source files and directories (if your OS supports the
> +\fBchflags\fP(2) system call). Some flags can only be altered by
> the super-user
> +and some might only be unset below a certain secure-level (usually
> single-user
> +mode). It will not make files alterable that are set to immutable
> on the
> +receiver. To do that, see \fB\-\-force\-change\fP, \fB\-\-force\-
> uchange\fP, and
> +\fB\-\-force\-schange\fP.
> +.IP
> +.IP "\fB\-\-force\-change\fP"
> +This option causes rsync to disable both user-immutable
> +and system-immutable flags on files and directories that are being
> updated or
> +deleted on the receiving side. This option overrides \fB\-\-force\-
> uchange\fP and
> +\fB\-\-force\-schange\fP.
> +.IP
> +.IP "\fB\-\-force\-uchange\fP"
> +This option causes rsync to disable user-immutable
> +flags on files and directories that are being updated or deleted on
> the
> +receiving side. It does not try to affect system flags. This
> option overrides
> +\fB\-\-force\-change\fP and \fB\-\-force\-schange\fP.
> +.IP
> +.IP "\fB\-\-force\-schange\fP"
> +This option causes rsync to disable system-immutable
> +flags on files and directories that are being updated or deleted on
> the
> +receiving side. It does not try to affect user flags. This option
> overrides
> +\fB\-\-force\-change\fP and \fB\-\-force\-schange\fP.
> +.IP
> .IP "\fB\-\-chmod\fP"
> This option tells rsync to apply one or more
> comma-separated \(lqchmod\(rq strings to the permission of the
> files in the
> @@ -1347,13 +1379,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
> -.IP "\fB\-\-force\fP"
> +.IP "\fB\-\-force\-delete\fP"
> This option tells rsync to delete a non-empty directory
> when it is to be replaced by a non-directory. This is only
> relevant if
> deletions are not active (see \fB\-\-delete\fP for details).
> .IP
> -Note for older rsync versions: \fB\-\-force\fP used to still be
> required when
> -using \fB\-\-delete\-after\fP, and it used to be non-functional
> unless the
> +This option can be abbreviated \fB\-\-force\fP for backward
> compatibility.
> +Note that some older rsync versions used to still require \fB\-\-
> force\fP
> +when using \fB\-\-delete\-after\fP, and it used to be non-
> functional unless the
> \fB\-\-recursive\fP option was also enabled.
> .IP
> .IP "\fB\-\-max\-delete=NUM\fP"
> @@ -1880,7 +1913,7 @@ with older versions of rsync, but that a
> verbose messages).
> .IP
> The \(lq%i\(rq escape has a cryptic output that is 11 letters
> long. The general
> -format is like the string \fBYXcstpoguax\fP, where \fBY\fP is
> replaced by the
> +format is like the string \fBYXcstpogfax\fP, where \fBY\fP is
> replaced by the
> 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.
> @@ -1945,7 +1978,7 @@ sender's value (requires \fB\-\-owner\fP
> A \fBg\fP means the group is different and is being updated to the
> sender's value (requires \fB\-\-group\fP and the authority to set
> the group).
> .IP o
> -The \fBu\fP slot is reserved for future use.
> +The \fBf\fP means that the fileflags information changed.
> .IP o
> The \fBa\fP means that the ACL information changed.
> .IP o
>
-------------- next part --------------
HTML attachment scrubbed and removed
More information about the rsync
mailing list