After applying this patch, run these commands for a successful build:
- autoconf
- autoheader
+ ./prepare-source
./configure --enable-ODBC
- make proto
make
See the file "instructions" (after applying this patch) for more info.
---- orig/Makefile.in 2006-01-14 08:14:29
+--- orig/Makefile.in 2006-02-06 05:03:50
+++ Makefile.in 2005-09-23 15:59:02
@@ -31,7 +31,7 @@ LIBOBJ=lib/wildmatch.o lib/compat.o lib/
ZLIBOBJ=zlib/deflate.o zlib/inffast.o zlib/inflate.o zlib/inftrees.o \
OBJS2=options.o flist.o io.o compat.o hlink.o token.o uidlist.o socket.o \
fileio.o batch.o clientname.o chmod.o
OBJS3=progress.o pipe.o
---- orig/cleanup.c 2006-01-14 08:14:29
+--- orig/cleanup.c 2006-02-03 20:00:35
+++ cleanup.c 2005-09-23 15:59:19
@@ -23,6 +23,7 @@
extern int log_got_error;
extern char *partial_dir;
-@@ -144,8 +145,13 @@ void _exit_cleanup(int code, const char
+@@ -149,8 +150,13 @@ void _exit_cleanup(int code, const char
code = RERR_PARTIAL;
}
if (verbose > 2) {
rprintf(FINFO,"_exit_cleanup(code=%d, file=%s, line=%d): about to call exit(%d)\n",
---- orig/clientserver.c 2006-01-14 08:14:29
+--- orig/clientserver.c 2006-02-03 20:41:03
+++ clientserver.c 2005-09-23 15:59:36
-@@ -387,6 +387,9 @@ static int rsync_module(int f_in, int f_
+@@ -392,6 +392,9 @@ static int rsync_module(int f_in, int f_
XFLG_ABS_IF_SLASH | XFLG_OLD_PREFIXES);
log_init();
#ifdef HAVE_PUTENV
if (*lp_prexfer_exec(i) || *lp_postxfer_exec(i)) {
-@@ -624,6 +627,9 @@ static int rsync_module(int f_in, int f_
+@@ -630,6 +633,9 @@ static int rsync_module(int f_in, int f_
rprintf(FLOG, "rsync %s %s from %s@%s (%s)\n",
am_sender ? "on" : "to",
request, auth_user, host, addr);
} else {
rprintf(FLOG, "rsync %s %s from %s (%s)\n",
am_sender ? "on" : "to",
---- orig/configure.in 2006-01-15 14:52:33
+--- orig/configure.in 2006-02-05 04:53:34
+++ configure.in 2005-09-24 18:38:47
-@@ -552,6 +552,12 @@ if test x"$with_included_popt" != x"yes"
+@@ -536,6 +536,12 @@ if test x"$with_included_popt" != x"yes"
AC_CHECK_LIB(popt, poptGetContext, , [with_included_popt=yes])
fi
+ sequence is used for unique IDs). If False the statement will be executed
+ after the session row is inserted (as is done when the session ID is
+ automatically generates unique IDs). Defaults to True.
---- orig/loadparm.c 2005-09-19 17:21:10
+--- orig/loadparm.c 2006-01-30 21:47:45
+++ loadparm.c 2005-09-24 18:29:59
@@ -120,9 +120,16 @@ typedef struct
{
char *filter;
char *gid;
char *hosts_allow;
-@@ -137,13 +144,19 @@ typedef struct
+@@ -139,13 +146,19 @@ typedef struct
char *prexfer_exec;
char *refuse_options;
char *secrets_file;
BOOL ignore_errors;
BOOL ignore_nonreadable;
BOOL list;
-@@ -163,9 +176,16 @@ static service sDefault =
+@@ -165,9 +178,16 @@ static service sDefault =
{
/* auth_users; */ NULL,
/* comment; */ NULL,
/* filter; */ NULL,
/* gid; */ NOBODY_GROUP,
/* hosts_allow; */ NULL,
-@@ -180,13 +200,19 @@ static service sDefault =
+@@ -184,13 +204,19 @@ static service sDefault =
/* prexfer_exec; */ NULL,
/* refuse_options; */ NULL,
/* secrets_file; */ NULL,
/* ignore_errors; */ False,
/* ignore_nonreadable; */ False,
/* list; */ True,
-@@ -287,10 +313,19 @@ static struct parm_struct parm_table[] =
+@@ -291,10 +317,19 @@ static struct parm_struct parm_table[] =
{"auth users", P_STRING, P_LOCAL, &sDefault.auth_users, NULL,0},
{"comment", P_STRING, P_LOCAL, &sDefault.comment, NULL,0},
{"gid", P_STRING, P_LOCAL, &sDefault.gid, NULL,0},
{"hosts allow", P_STRING, P_LOCAL, &sDefault.hosts_allow, NULL,0},
{"hosts deny", P_STRING, P_LOCAL, &sDefault.hosts_deny, NULL,0},
-@@ -312,11 +347,15 @@ static struct parm_struct parm_table[] =
+@@ -318,11 +353,15 @@ static struct parm_struct parm_table[] =
{"read only", P_BOOL, P_LOCAL, &sDefault.read_only, NULL,0},
{"refuse options", P_STRING, P_LOCAL, &sDefault.refuse_options, NULL,0},
{"secrets file", P_STRING, P_LOCAL, &sDefault.secrets_file, NULL,0},
{"use chroot", P_BOOL, P_LOCAL, &sDefault.use_chroot, NULL,0},
{"write only", P_BOOL, P_LOCAL, &sDefault.write_only, NULL,0},
{NULL, P_BOOL, P_NONE, NULL, NULL,0}
-@@ -377,9 +416,16 @@ FN_GLOBAL_INTEGER(lp_syslog_facility, &G
+@@ -383,9 +422,16 @@ FN_GLOBAL_INTEGER(lp_syslog_facility, &G
FN_LOCAL_STRING(lp_auth_users, auth_users)
FN_LOCAL_STRING(lp_comment, comment)
FN_LOCAL_STRING(lp_filter, filter)
FN_LOCAL_STRING(lp_gid, gid)
FN_LOCAL_STRING(lp_hosts_allow, hosts_allow)
-@@ -394,13 +440,19 @@ FN_LOCAL_STRING(lp_postxfer_exec, postxf
+@@ -402,13 +448,19 @@ FN_LOCAL_STRING(lp_postxfer_exec, postxf
FN_LOCAL_STRING(lp_prexfer_exec, prexfer_exec)
FN_LOCAL_STRING(lp_refuse_options, refuse_options)
FN_LOCAL_STRING(lp_secrets_file, secrets_file)
FN_LOCAL_BOOL(lp_ignore_errors, ignore_errors)
FN_LOCAL_BOOL(lp_ignore_nonreadable, ignore_nonreadable)
FN_LOCAL_BOOL(lp_list, list)
---- orig/log.c 2006-01-17 02:16:40
+--- orig/log.c 2006-02-05 04:53:34
+++ log.c 2005-09-23 16:01:13
-@@ -87,7 +87,7 @@ struct {
+@@ -93,7 +93,7 @@ struct {
/*
* Map from rsync error code to name, or return NULL.
*/
{
int i;
for (i = 0; rerr_names[i].name; i++) {
---- orig/main.c 2006-01-15 14:46:15
+--- orig/main.c 2006-02-05 04:53:34
+++ main.c 2005-09-23 16:01:22
-@@ -159,6 +159,9 @@ static void handle_stats(int f)
+@@ -168,6 +168,9 @@ static void handle_stats(int f)
if (am_daemon) {
log_exit(0, __FILE__, __LINE__);
if (f == -1 || !am_sender)
return;
}
---- orig/receiver.c 2006-01-14 20:27:09
+--- orig/receiver.c 2006-01-31 02:30:18
+++ receiver.c 2006-01-14 08:27:51
@@ -174,6 +174,10 @@ static int get_tmpname(char *fnametmp, c
exit_cleanup(RERR_FILEIO);
}
-@@ -727,6 +773,12 @@ int recv_files(int f_in, struct file_lis
+@@ -730,6 +776,12 @@ int recv_files(int f_in, struct file_lis
rprintf(msgtype,
"%s: %s failed verification -- update %s%s.\n",
errstr, fname, keptstr, redostr);
After applying this patch, run these commands for a successful build:
- autoconf
- autoheader
+ ./prepare-source
./configure --enable-acl-support
- make proto
make
The program currently complains when the --acls (-A) option is used to copy
notice that no ACLs are available to copy. Of course, trying to write out
ACLs to a non-ACL-supporting disk should complain.
---- orig/Makefile.in 2006-01-14 08:14:29
+--- orig/Makefile.in 2006-02-06 05:03:50
+++ Makefile.in 2005-11-07 04:31:05
@@ -25,15 +25,15 @@ VERSION=@VERSION@
.SUFFIXES:
}
/* We now check to see if we are writing file "inplace" */
---- orig/rsync.c 2006-02-05 04:53:34
+--- orig/rsync.c 2006-02-05 15:31:49
+++ rsync.c 2006-02-04 19:53:13
-@@ -88,7 +88,8 @@ void free_sums(struct sum_struct *s)
+@@ -91,7 +91,8 @@ void free_sums(struct sum_struct *s)
/* This is only called when we aren't preserving permissions. Figure out what
* the permissions should be and return them merged back into the mode. */
{
/* If the file already exists, we'll return the local permissions,
* possibly tweaked by the --executability option. */
-@@ -103,7 +104,7 @@ mode_t dest_mode(mode_t flist_mode, mode
+@@ -106,7 +107,7 @@ mode_t dest_mode(mode_t flist_mode, mode
dest_mode |= (dest_mode & 0444) >> 2;
}
} else
return (flist_mode & ~CHMOD_BITS) | (dest_mode & CHMOD_BITS);
}
-@@ -202,6 +203,14 @@ int set_file_attrs(char *fname, struct f
+@@ -205,6 +206,14 @@ int set_file_attrs(char *fname, struct f
}
#endif
#include "proto.h"
/* We have replacement versions of these if they're missing. */
---- orig/rsync.yo 2006-02-05 06:58:50
+--- orig/rsync.yo 2006-02-05 15:31:49
+++ rsync.yo 2006-02-05 06:55:30
@@ -317,6 +317,7 @@ to the detailed description below for a
-K, --keep-dirlinks treat symlinked dir on receiver as dir
their special permission bits disabled except in the case where a new
directory inherits a setgid bit from its parent directory.
))
-@@ -718,9 +721,11 @@ The preservation of the destination's se
+@@ -722,9 +725,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
dit(bf(-E, --executability)) This option causes rsync to preserve the
executability (or non-executability) of regular files when bf(--perms) is
-@@ -738,6 +743,10 @@ quote(itemize(
+@@ -742,6 +747,10 @@ quote(itemize(
If bf(--perms) is enabled, this option is ignored.
-After applying this patch and running configure, you MUST run this
-command before "make":
+After applying this patch, run these commands for a successful build:
- make proto
+ ./prepare-source
+ ./configure (optional if already run)
+ make
--- orig/flist.c 2006-01-31 02:30:18
if (preserve_perms)
argstr[x++] = 'p';
else if (preserve_executability && am_sender)
---- orig/rsync.c 2006-02-05 04:53:34
+--- orig/rsync.c 2006-02-05 15:31:49
+++ rsync.c 2006-01-31 03:00:22
@@ -37,6 +37,7 @@ extern int preserve_perms;
extern int preserve_executability;
extern int orig_umask;
extern int am_root;
extern int am_server;
-@@ -113,6 +114,7 @@ int set_file_attrs(char *fname, struct f
+@@ -116,6 +117,7 @@ int set_file_attrs(char *fname, struct f
int updated = 0;
STRUCT_STAT st2;
int change_uid, change_gid;
if (!st) {
if (dry_run)
-@@ -131,18 +133,33 @@ int set_file_attrs(char *fname, struct f
+@@ -134,18 +136,33 @@ int set_file_attrs(char *fname, struct f
}
}
/*
* Start the flist array at FLIST_START entries and grow it
* by doubling until FLIST_LINEAR then grow by FLIST_LINEAR
---- orig/rsync.yo 2006-02-05 06:58:50
+--- orig/rsync.yo 2006-02-05 15:31:49
+++ rsync.yo 2006-01-31 03:06:45
@@ -323,8 +323,9 @@ to the detailed description below for a
--devices preserve device files (super-user only)
--super receiver attempts super-user activities
-S, --sparse handle sparse files efficiently
-n, --dry-run show what would have been transferred
-@@ -796,6 +797,12 @@ it is preserving modification times (see
+@@ -800,6 +801,12 @@ it is preserving modification times (see
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).
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
-@@ -1303,8 +1310,8 @@ if the receiving rsync is at least versi
+@@ -1307,8 +1314,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).
kind 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.
-@@ -1344,9 +1351,13 @@ quote(itemize(
+@@ -1348,9 +1355,13 @@ quote(itemize(
by the file transfer.
it() A bf(t) means the modification time is different and is being updated
to the sender's value (requires bf(--times)). An alternate value of bf(T)
-After applying this patch and running configure, you MUST run this
-command before "make":
+After applying this patch, run these commands for a successful build:
- make proto
+ ./prepare-source
+ ./configure (optional if already run)
+ make
Jason M. Felice writes:
the file's name.
---- orig/Makefile.in 2006-01-14 08:14:29
+--- orig/Makefile.in 2006-02-06 05:03:50
+++ Makefile.in 2005-11-07 04:37:17
@@ -34,7 +34,7 @@ OBJS1=rsync.o generator.o receiver.o cle
main.o checksum.o match.o syscall.o log.o backup.o
+}
+
+#endif
---- orig/options.c 2006-01-31 03:11:30
+--- orig/options.c 2006-02-03 23:51:57
+++ options.c 2006-01-26 10:57:21
@@ -144,6 +144,7 @@ char *backup_suffix = NULL;
char *tmpdir = NULL;
if (!log_before_transfer)
log_item(file, &initial_stats, iflags, NULL);
---- orig/rsync.c 2006-01-31 02:30:18
+--- orig/rsync.c 2006-02-05 15:31:49
+++ rsync.c 2006-01-30 07:19:44
-@@ -40,6 +40,7 @@ extern int inplace;
+@@ -49,6 +49,7 @@ extern int inplace;
extern int keep_dirlinks;
extern int make_backups;
extern struct stats stats;
+extern char *link_by_hash_dir;
-
- /*
-@@ -213,8 +214,15 @@ void finish_transfer(char *fname, char *
+ #if defined HAVE_ICONV_OPEN && defined HAVE_ICONV_H
+ iconv_t ic_chck = (iconv_t)-1;
+@@ -257,8 +258,15 @@ void finish_transfer(char *fname, char *
/* move tmp file over real file */
if (verbose > 2)
rprintf(FINFO, "renaming %s to %s\n", fnametmp, fname);
if (ret < 0) {
rsyserr(FERROR, errno, "%s %s -> \"%s\"",
ret == -2 ? "copy" : "rename",
---- orig/rsync.h 2006-01-30 20:39:09
+--- orig/rsync.h 2006-02-03 20:00:36
+++ rsync.h 2006-01-30 20:42:44
@@ -640,6 +640,14 @@ struct stats {
int current_file_index;
struct chmod_mode_struct;
#include "byteorder.h"
---- orig/rsync.yo 2006-01-31 03:05:44
+--- orig/rsync.yo 2006-02-05 15:31:49
+++ rsync.yo 2005-02-13 06:58:47
@@ -361,6 +361,7 @@ to the detailed description below for a
--compare-dest=DIR also compare received files relative to DIR
After applying this patch, run these commands for a successful build:
- autoconf
- autoheader
+ ./prepare-source
./configure
- make proto
make
Casey Marshall writes:
can't say if I've left any cleanup/compatibility errors in the code.
---- orig/Makefile.in 2006-01-14 08:14:29
+--- orig/Makefile.in 2006-02-06 05:03:50
+++ Makefile.in 2004-10-08 20:17:06
@@ -38,7 +38,7 @@ OBJS3=progress.o pipe.o
DAEMON_OBJ = params.o loadparm.o clientserver.o access.o connection.o authenticate.o
TLS_OBJ = tls.o syscall.o lib/compat.o lib/snprintf.o lib/permstring.o
---- orig/cleanup.c 2006-02-02 02:41:08
+--- orig/cleanup.c 2006-02-03 20:00:35
+++ cleanup.c 2005-01-10 10:43:22
@@ -22,6 +22,9 @@
#include "rsync.h"
if (verbose > 3) {
rprintf(FINFO,"_exit_cleanup(code=%d, file=%s, line=%d): entered\n",
code, file, line);
---- orig/clientserver.c 2006-02-01 19:37:05
+--- orig/clientserver.c 2006-02-03 20:41:03
+++ clientserver.c 2005-04-09 17:39:57
@@ -45,6 +45,9 @@ extern int io_timeout;
extern int orig_umask;
line[0] = 0;
if (!read_line(f_in, line, sizeof line - 1))
return -1;
-@@ -777,6 +829,20 @@ int start_daemon(int f_in, int f_out)
+@@ -781,6 +833,20 @@ int start_daemon(int f_in, int f_out)
return -1;
}
if (*line == '#') {
/* it's some sort of command that I don't understand */
io_printf(f_out, "@ERROR: Unknown command '%s'\n", line);
---- orig/configure.in 2006-02-02 02:41:09
+--- orig/configure.in 2006-02-05 04:53:34
+++ configure.in 2004-07-03 20:22:28
@@ -282,6 +282,21 @@ if test x"$enable_locale" != x"no"; then
AC_DEFINE(CONFIG_LOCALE)
AC_MSG_CHECKING([whether to call shutdown on all sockets])
case $host_os in
*cygwin* ) AC_MSG_RESULT(yes)
---- orig/options.c 2006-02-02 11:40:45
+--- orig/options.c 2006-02-03 23:51:57
+++ options.c 2006-02-02 11:49:06
@@ -167,6 +167,14 @@ int log_format_has_o_or_i = 0;
int always_checksum = 0;
if ((p = strchr(s, '/')) != NULL) {
hostlen = p - s;
path = p + 1;
---- orig/rsync.h 2006-02-02 02:41:09
+--- orig/rsync.h 2006-02-03 20:00:36
+++ rsync.h 2004-10-08 21:01:33
@@ -32,6 +32,7 @@
After applying this patch, run these commands for a successful build:
- autoconf
- autoheader
+ ./prepare-source
./configure --enable-slp
- make proto
make
---- orig/Makefile.in 2006-01-14 08:14:29
+--- orig/Makefile.in 2006-02-06 05:03:50
+++ Makefile.in 2006-02-02 00:00:00
@@ -12,6 +12,8 @@ CFLAGS=@CFLAGS@
CPPFLAGS=@CPPFLAGS@
$(OBJS): $(HEADERS)
---- orig/clientserver.c 2006-02-01 19:37:05
+--- orig/clientserver.c 2006-02-03 20:41:03
+++ clientserver.c 2006-02-02 11:32:24
-@@ -832,6 +832,13 @@ int daemon_main(void)
+@@ -836,6 +836,13 @@ int daemon_main(void)
* address too. In fact, why not just do inet_ntop on the
* local address??? */
if (((pid_file = lp_pid_file()) != NULL) && (*pid_file != '\0')) {
char pidbuf[16];
int fd;
---- orig/configure.in 2006-02-02 02:41:09
+--- orig/configure.in 2006-02-05 04:53:34
+++ configure.in 2006-02-02 11:30:00
-@@ -535,6 +535,29 @@ if test $rsync_cv_chown_follows_symlink
+@@ -518,6 +518,29 @@ if test $rsync_cv_chown_follows_symlink
AC_DEFINE(CHOWN_MODIFIES_SYMLINK, 1, [Define to 1 if chown modifies symlinks.])
fi
FN_GLOBAL_INTEGER(lp_syslog_facility, &Globals.syslog_facility)
FN_LOCAL_STRING(lp_auth_users, auth_users)
---- orig/main.c 2006-02-02 02:41:09
+--- orig/main.c 2006-02-05 04:53:34
+++ main.c 2006-02-02 11:33:24
-@@ -952,6 +952,18 @@ static int start_client(int argc, char *
+@@ -962,6 +962,18 @@ static int start_client(int argc, char *
if (!read_batch) { /* for read_batch, NO source is specified */
argc--;
shell_path = check_for_hostspec(argv[0], &shell_machine, &rsync_port);
if (shell_path) { /* source is remote */
char *dummy1;
int dummy2;
---- orig/options.c 2006-02-02 11:40:45
+--- orig/options.c 2006-02-03 23:51:57
+++ options.c 2006-02-02 11:41:16
@@ -195,6 +195,7 @@ static void print_rsync_version(enum log
char const *hardlinks = "no ";
(int) (sizeof dumstat->st_ino * 8),
(int) (sizeof (int64) * 8));
#ifdef MAINTAINER_MODE
---- orig/rsync.h 2006-02-02 02:41:09
+--- orig/rsync.h 2006-02-03 20:00:36
+++ rsync.h 2006-02-02 00:00:00
@@ -154,6 +154,9 @@
#define SIGNIFICANT_ITEM_FLAGS (~(\
/* Log-message categories. Only FERROR and FINFO get sent over the socket.
* FLOG and FCLIENT are only used on the daemon side for custom logging,
---- orig/rsync.yo 2006-01-31 03:05:44
+--- orig/rsync.yo 2006-02-05 15:31:49
+++ rsync.yo 2006-02-02 10:44:29
@@ -137,7 +137,12 @@ particular rsync daemon by leaving off t
+
+slp refresh = 300
+
---- orig/rsyncd.conf.yo 2006-01-31 02:30:18
+--- orig/rsyncd.conf.yo 2006-02-03 20:00:36
+++ rsyncd.conf.yo 2006-02-02 10:40:24
@@ -119,6 +119,15 @@ details on some of the options you may b
special socket options are set. These settings are superseded by the
enddit()
-@@ -540,6 +549,7 @@ use chroot = no
+@@ -541,6 +550,7 @@ use chroot = no
max connections = 4
syslog facility = local5
pid file = /var/run/rsyncd.pid
[ftp]
path = /var/ftp/pub
---- orig/socket.c 2006-02-02 02:41:09
+--- orig/socket.c 2006-02-03 20:00:36
+++ socket.c 2006-02-02 10:28:15
@@ -447,6 +447,14 @@ void start_accept_loop(int port, int (*f
{
+ slp_timeout -= 15;
+ }
- #if defined HAVE_SIGACTION && defined HAVE_SIGPROCMASK
+ #ifdef HAVE_SIGACTION
sigact.sa_flags = SA_NOCLDSTOP;
@@ -475,14 +483,20 @@ void start_accept_loop(int port, int (*f
maxfd = sp[i];
- If the COMMAND contains single quotes, option-passing breaks. (Needs
to be fixed.)
-You should run "make proto" before running "make".
+After applying this patch, run these commands for a successful build:
---- orig/generator.c 2006-01-20 21:12:17
+ ./prepare-source
+ ./configure (optional if already run)
+ make
+
+--- orig/generator.c 2006-02-05 06:40:40
+++ generator.c 2005-08-17 07:28:01
-@@ -59,6 +59,7 @@ extern int append_mode;
+@@ -61,6 +61,7 @@ extern int append_mode;
extern int make_backups;
extern int csum_length;
extern int ignore_times;
extern int size_only;
extern OFF_T max_size;
extern OFF_T min_size;
-@@ -378,7 +379,7 @@ void itemize(struct file_struct *file, i
+@@ -379,7 +380,7 @@ void itemize(struct file_struct *file, i
/* Perform our quick-check heuristic for determining if a file is unchanged. */
int unchanged_file(char *fn, struct file_struct *file, STRUCT_STAT *st)
{
return 0;
/* if always checksum is set then we use the checksum instead
---- orig/options.c 2006-01-21 07:55:00
+--- orig/options.c 2006-02-03 23:51:57
+++ options.c 2006-01-21 08:09:48
-@@ -93,6 +93,7 @@ int keep_partial = 0;
+@@ -98,6 +98,7 @@ int keep_partial = 0;
int safe_symlinks = 0;
int copy_unsafe_links = 0;
int size_only = 0;
int daemon_bwlimit = 0;
int bwlimit = 0;
int fuzzy_basis = 0;
-@@ -142,6 +143,8 @@ char *basis_dir[MAX_BASIS_DIRS+1];
+@@ -147,6 +148,8 @@ char *basis_dir[MAX_BASIS_DIRS+1];
char *config_file = NULL;
char *shell_cmd = NULL;
char *log_format = NULL;
char *password_file = NULL;
char *rsync_path = RSYNC_PATH;
char *backup_dir = NULL;
-@@ -321,6 +324,7 @@ void usage(enum logcode F)
+@@ -331,6 +334,7 @@ void usage(enum logcode F)
rprintf(F," --timeout=TIME set I/O timeout in seconds\n");
rprintf(F," -I, --ignore-times don't skip files that match in size and mod-time\n");
rprintf(F," --size-only skip files that match in size\n");
rprintf(F," --modify-window=NUM compare mod-times with reduced accuracy\n");
rprintf(F," -T, --temp-dir=DIR create temporary files in directory DIR\n");
rprintf(F," -y, --fuzzy find similar file for basis if no dest file\n");
-@@ -355,6 +359,8 @@ void usage(enum logcode F)
+@@ -366,6 +370,8 @@ void usage(enum logcode F)
rprintf(F," --write-batch=FILE write a batched update to FILE\n");
rprintf(F," --only-write-batch=FILE like --write-batch but w/o updating destination\n");
rprintf(F," --read-batch=FILE read a batched update from FILE\n");
rprintf(F," --protocol=NUM force an older protocol version to be used\n");
#ifdef INET6
rprintf(F," -4, --ipv4 prefer IPv4\n");
-@@ -425,6 +431,7 @@ static struct poptOption long_options[]
- {"chmod", 0, POPT_ARG_STRING, &chmod_mode, 0, 0, 0 },
+@@ -443,6 +449,7 @@ static struct poptOption long_options[]
+ {"chmod", 0, POPT_ARG_STRING, 0, OPT_CHMOD, 0, 0 },
{"ignore-times", 'I', POPT_ARG_NONE, &ignore_times, 0, 0, 0 },
{"size-only", 0, POPT_ARG_NONE, &size_only, 0, 0, 0 },
+ {"times-only", 0, POPT_ARG_NONE, ×_only , 0, 0, 0 },
{"one-file-system", 'x', POPT_ARG_NONE, 0, 'x', 0, 0 },
{"update", 'u', POPT_ARG_NONE, &update_only, 0, 0, 0 },
{"existing", 0, POPT_ARG_NONE, &ignore_non_existing, 0, 0, 0 },
-@@ -496,6 +503,8 @@ static struct poptOption long_options[]
+@@ -516,6 +523,8 @@ static struct poptOption long_options[]
{"password-file", 0, POPT_ARG_STRING, &password_file, 0, 0, 0 },
{"blocking-io", 0, POPT_ARG_VAL, &blocking_io, 1, 0, 0 },
{"no-blocking-io", 0, POPT_ARG_VAL, &blocking_io, 0, 0, 0 },
+ {"dest-filter", 0, POPT_ARG_STRING, &dest_filter, 0, 0, 0 },
{"protocol", 0, POPT_ARG_INT, &protocol_version, 0, 0, 0 },
{"checksum-seed", 0, POPT_ARG_INT, &checksum_seed, 0, 0, 0 },
- {"server", 0, POPT_ARG_NONE, &am_server, 0, 0, 0 },
-@@ -1331,6 +1340,16 @@ int parse_arguments(int *argc, const cha
+ {"server", 0, POPT_ARG_NONE, 0, OPT_SERVER, 0, 0 },
+@@ -1380,6 +1389,16 @@ int parse_arguments(int *argc, const cha
}
}
if (files_from) {
char *h, *p;
int q;
-@@ -1570,6 +1589,25 @@ void server_options(char **args,int *arg
- args[ac++] = "--only-write-batch=X";
+@@ -1640,6 +1659,25 @@ void server_options(char **args,int *arg
+ args[ac++] = "--super";
}
+ if (times_only && am_sender)
+
+ return pid;
+}
---- orig/receiver.c 2006-01-14 20:27:09
+--- orig/receiver.c 2006-01-31 02:30:18
+++ receiver.c 2005-08-17 07:57:33
@@ -53,6 +53,7 @@ extern int inplace;
extern int delay_updates;
+ }
+
if ((recv_ok && (!delay_updates || !partialptr)) || inplace) {
- finish_transfer(fname, fnametmp, file, recv_ok, 1);
- if (partialptr != fname && fnamecmp == partialptr) {
---- orig/rsync.h 2006-01-14 20:27:10
+ if (partialptr == fname || *partial_dir == '/')
+ partialptr = NULL;
+--- orig/rsync.h 2006-02-03 20:00:36
+++ rsync.h 2005-08-17 07:10:11
@@ -103,6 +103,7 @@
#define IOERR_DEL_LIMIT (1<<2)
#define MAX_BASIS_DIRS 20
#define MAX_SERVER_ARGS (MAX_BASIS_DIRS*2 + 100)
---- orig/rsync.yo 2006-01-21 08:12:23
+--- orig/rsync.yo 2006-02-05 15:31:49
+++ rsync.yo 2005-08-17 07:08:21
-@@ -350,6 +350,7 @@ to the detailed description below for a
+@@ -355,6 +355,7 @@ to the detailed description below for a
--timeout=TIME set I/O timeout in seconds
-I, --ignore-times don't skip files that match size and time
--size-only skip files that match in size
--modify-window=NUM compare mod-times with reduced accuracy
-T, --temp-dir=DIR create temporary files in directory DIR
-y, --fuzzy find similar file for basis if no dest file
-@@ -384,6 +385,8 @@ to the detailed description below for a
+@@ -390,6 +391,8 @@ to the detailed description below for a
--write-batch=FILE write a batched update to FILE
--only-write-batch=FILE like --write-batch but w/o updating dest
--read-batch=FILE read a batched update from FILE
--protocol=NUM force an older protocol version to be used
--checksum-seed=NUM set block/file checksum seed (advanced)
-4, --ipv4 prefer IPv4
-@@ -1430,6 +1433,33 @@ file previously generated by bf(--write-
+@@ -1598,6 +1601,33 @@ file previously generated by bf(--write-
If em(FILE) is bf(-), the batch data will be read from standard input.
See the "BATCH MODE" section for details.
If you try this out, please send some email to wayned@samba.org or the rsync
mailing list with your results, build changes, bug reports, etc. Thanks!
-Be sure to run "make proto" before running "make".
+After applying this patch, run these commands for a successful build:
---- orig/Makefile.in 2006-01-14 08:14:29
+ ./prepare-source
+ ./configure (optional if already run)
+ make
+
+--- orig/Makefile.in 2006-02-06 05:03:50
+++ Makefile.in 2005-12-10 18:35:39
@@ -6,7 +6,7 @@ exec_prefix=@exec_prefix@
bindir=@bindir@
#define RERR_SIGNAL 20 /* status returned when sent SIGINT, SIGTERM, SIGHUP */
#define RERR_WAITCHILD 21 /* some error returned by waitpid() */
#define RERR_MALLOC 22 /* error allocating core memory buffers */
---- orig/generator.c 2006-01-31 18:59:39
+--- orig/generator.c 2006-02-05 06:40:40
+++ generator.c 2005-12-08 23:17:08
-@@ -68,7 +68,6 @@ extern OFF_T min_size;
+@@ -67,7 +67,6 @@ extern OFF_T min_size;
extern int io_error;
extern int allowed_lull;
extern int sock_f_out;
extern int protocol_version;
extern int fuzzy_basis;
extern int always_checksum;
-@@ -99,6 +98,11 @@ static int deletion_count = 0; /* used t
+@@ -98,6 +97,11 @@ static int deletion_count = 0; /* used t
static int can_link_symlinks = 1; /* start out optimistic */
static int can_link_devices = 1;
/* For calling delete_file() */
#define DEL_FORCE_RECURSE (1<<1) /* recurse even w/o --force */
#define DEL_TERSE (1<<3)
-@@ -448,8 +452,8 @@ static void sum_sizes_sqroot(struct sum_
+@@ -446,8 +450,8 @@ static void sum_sizes_sqroot(struct sum_
}
if (protocol_version < 27) {
s2length = SUM_LENGTH;
} else {
int32 c;
-@@ -459,7 +463,7 @@ static void sum_sizes_sqroot(struct sum_
+@@ -457,7 +461,7 @@ static void sum_sizes_sqroot(struct sum_
for (c = blength; c >>= 1 && b; b--) {}
/* add a bit, subtract rollsum, round up. */
s2length = (b + 1 - 32 + 7) / 8; /* --optimize in compiler-- */
s2length = MIN(s2length, SUM_LENGTH);
}
-@@ -493,7 +497,7 @@ static void generate_and_send_sums(int f
+@@ -491,7 +495,7 @@ static void generate_and_send_sums(int f
sum_sizes_sqroot(&sum, len);
write_sum_head(f_out, &sum);
return;
if (len > 0)
-@@ -512,7 +516,7 @@ static void generate_and_send_sums(int f
+@@ -510,7 +514,7 @@ static void generate_and_send_sums(int f
if (f_copy >= 0) {
full_write(f_copy, map, n1);
continue;
}
-@@ -1142,7 +1146,7 @@ static void recv_generator(char *fname,
+@@ -1140,7 +1144,7 @@ static void recv_generator(char *fname,
return;
}
return;
if (fnamecmp_type <= FNAMECMP_BASIS_DIR_HIGH)
-@@ -1197,7 +1201,7 @@ static void recv_generator(char *fname,
+@@ -1195,7 +1199,7 @@ static void recv_generator(char *fname,
goto notify_others;
}
if (!(backupptr = get_backup_name(fname))) {
close(fd);
return;
-@@ -1286,7 +1290,10 @@ void generate_files(int f_out, struct fi
+@@ -1284,7 +1288,10 @@ void generate_files(int f_out, struct fi
int save_ignore_existing = ignore_existing;
int save_ignore_non_existing = ignore_non_existing;
int save_do_progress = do_progress;
if (protocol_version >= 29) {
itemizing = 1;
-@@ -1315,7 +1322,7 @@ void generate_files(int f_out, struct fi
+@@ -1313,7 +1320,7 @@ void generate_files(int f_out, struct fi
do_delete_pass(flist);
do_progress = 0;
whole_file = 0;
if (verbose >= 2) {
rprintf(FINFO, "delta-transmission %s\n",
-@@ -1324,12 +1331,6 @@ void generate_files(int f_out, struct fi
+@@ -1322,12 +1329,6 @@ void generate_files(int f_out, struct fi
: "enabled");
}
for (i = 0; i < flist->count; i++) {
struct file_struct *file = flist->files[i];
-@@ -1373,23 +1374,34 @@ void generate_files(int f_out, struct fi
+@@ -1371,23 +1372,34 @@ void generate_files(int f_out, struct fi
delete_in_dir(NULL, NULL, NULL, NULL);
phase++;
if (local_name)
strlcpy(fbuf, local_name, sizeof fbuf);
else
-@@ -1401,27 +1413,43 @@ void generate_files(int f_out, struct fi
+@@ -1399,27 +1411,43 @@ void generate_files(int f_out, struct fi
phase++;
ignore_non_existing = save_ignore_non_existing;
ignore_existing = save_ignore_existing;
}
}
make_backups = save_make_backups;
---- orig/rsync.c 2006-02-05 04:53:34
+--- orig/rsync.c 2006-02-05 15:31:49
+++ rsync.c 2005-12-08 23:17:10
@@ -41,7 +41,6 @@ extern int orig_umask;
extern int am_root;
extern int am_starting_up;
extern int preserve_uid;
extern int preserve_gid;
-@@ -288,5 +287,5 @@ const char *who_am_i(void)
+@@ -291,5 +290,5 @@ const char *who_am_i(void)
{
if (am_starting_up)
return am_server ? "server" : "client";
After applying this patch, run these commands for a successful build:
- autoconf
- autoheader
+ ./prepare-source
./configure --enable-acl-support --enable-xattr-support
- make proto
make
--- orig/Makefile.in 2005-11-07 04:31:05
if (verbose > 1) {
--- orig/configure.in 2004-08-19 19:53:27
+++ configure.in 2005-05-12 22:57:53
-@@ -827,6 +827,30 @@ samba_cv_HAVE_ACL_GET_PERM_NP=yes,samba_
+@@ -810,6 +810,30 @@ samba_cv_HAVE_ACL_GET_PERM_NP=yes,samba_
AC_MSG_RESULT(no)
)
if (f >= 0) {
recv_uid_list(f, flist);
---- orig/generator.c 2006-02-03 05:44:04
+--- orig/generator.c 2006-02-04 22:26:45
+++ generator.c 2005-05-12 23:21:08
-@@ -906,6 +906,10 @@ static void recv_generator(char *fname,
+@@ -908,6 +908,10 @@ static void recv_generator(char *fname,
if (f_out == -1)
SET_ACL(fname, file);
#endif
if (preserve_gid)
--- orig/rsync.c 2006-02-04 19:53:13
+++ rsync.c 2005-10-16 23:19:27
-@@ -169,12 +169,15 @@ int set_file_attrs(char *fname, struct f
+@@ -206,12 +206,15 @@ int set_file_attrs(char *fname, struct f
}
#endif
#include "proto.h"
/* We have replacement versions of these if they're missing. */
---- orig/rsync.yo 2006-01-31 03:14:05
+--- orig/rsync.yo 2006-02-05 06:55:30
+++ rsync.yo 2006-01-31 03:16:46
@@ -318,6 +318,7 @@ to the detailed description below for a
-p, --perms preserve permissions
--chmod=CHMOD change destination permissions
-o, --owner preserve owner (super-user only)
-g, --group preserve group
-@@ -727,6 +728,11 @@ dit(bf(-A, --acls)) This option causes r
+@@ -751,6 +752,11 @@ dit(bf(-A, --acls)) This option causes r
ACLs to be the same as the source ACLs. This nonstandard option only
works if the remote rsync also supports it. bf(--acls) implies bf(--perms).