aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDylan Simon <dylan@dylex.net>2010-10-03 17:37:49 -0400
committerDylan Simon <dylan@dylex.net>2010-10-03 17:37:49 -0400
commit743f916624771b0880a92398dc7ccc6f0bf551b2 (patch)
tree6dbbe17882e08de54022dde2f68fb8a99dbf1e19
parent15b7d1156ebd0b35eaaa323482a84cbc4c4afff9 (diff)
parentc463617443f999befe1b20cc5b3ffb484dee025b (diff)
downloadandroid_external_rsync-743f916624771b0880a92398dc7ccc6f0bf551b2.tar.gz
android_external_rsync-743f916624771b0880a92398dc7ccc6f0bf551b2.tar.bz2
android_external_rsync-743f916624771b0880a92398dc7ccc6f0bf551b2.zip
Merge remote branch 'rsync/b3.0.x'
-rw-r--r--INSTALL14
-rw-r--r--generator.c6
-rw-r--r--options.c4
-rw-r--r--rsync.h2
-rwxr-xr-xsupport/lsh6
-rw-r--r--xattrs.c2
6 files changed, 27 insertions, 7 deletions
diff --git a/INSTALL b/INSTALL
index 6b10daeb..ec551cc3 100644
--- a/INSTALL
+++ b/INSTALL
@@ -17,7 +17,7 @@ for the daemon by editing the NOBODY_USER and NOBODY_GROUP defines in
config.h, or just override them in your /etc/rsyncd.conf file.
As of 2.4.7, rsync uses Eric Troan's popt option-parsing library. A
-cut-down copy of release 1.6.4 is included in the rsync distribution,
+cut-down copy of a recent release is included in the rsync distribution,
and will be used if there is no popt library on your build host, or if
the --with-included-popt option is passed to ./configure.
@@ -25,6 +25,18 @@ If you configure using --enable-maintainer-mode, then rsync will try
to pop up an xterm on DISPLAY=:0 if it crashes. You might find this
useful, but it should be turned off for production builds.
+MAKE COMPATIBILITY
+------------------
+
+Note that Makefile.in has a rule that uses a wildcard in a prerequisite. If
+your make has a problem with this rule, you will see an error like this:
+
+ Don't know how to make ./*.c
+
+You can change the "proto.h-tstamp" target to omit its prerequisite args,
+but keep in mind that this will make a manual removal of "proto.h-tstamp"
+necessary anytime the function prototypes change.
+
RPM NOTES
---------
diff --git a/generator.c b/generator.c
index 5846d85f..255e0985 100644
--- a/generator.c
+++ b/generator.c
@@ -761,6 +761,12 @@ static void sum_sizes_sqroot(struct sum_struct *sum, int64 len)
int s2length;
int64 l;
+ if (len < 0) {
+ /* The file length overflowed our int64 var, so we can't process this file. */
+ sum->count = -1; /* indicate overflow error */
+ return;
+ }
+
if (block_size)
blength = block_size;
else if (len <= BLOCK_SIZE * BLOCK_SIZE)
diff --git a/options.c b/options.c
index 1f392844..05513cdd 100644
--- a/options.c
+++ b/options.c
@@ -531,8 +531,8 @@ static struct poptOption long_options[] = {
{"ignore-times", 'I', POPT_ARG_NONE, &ignore_times, 0, 0, 0 },
{"size-only", 0, POPT_ARG_NONE, &size_only, 0, 0, 0 },
{"one-file-system", 'x', POPT_ARG_NONE, 0, 'x', 0, 0 },
- {"no-one-file-system",'x',POPT_ARG_VAL, &one_file_system, 0, 0, 0 },
- {"no-x", 'x', POPT_ARG_VAL, &one_file_system, 0, 0, 0 },
+ {"no-one-file-system",0, POPT_ARG_VAL, &one_file_system, 0, 0, 0 },
+ {"no-x", 0, POPT_ARG_VAL, &one_file_system, 0, 0, 0 },
{"update", 'u', POPT_ARG_NONE, &update_only, 0, 0, 0 },
{"existing", 0, POPT_ARG_NONE, &ignore_non_existing, 0, 0, 0 },
{"ignore-non-existing",0,POPT_ARG_NONE, &ignore_non_existing, 0, 0, 0 },
diff --git a/rsync.h b/rsync.h
index 1ba5b156..af390089 100644
--- a/rsync.h
+++ b/rsync.h
@@ -430,6 +430,8 @@ typedef unsigned int mode_t;
#endif
#ifndef HAVE_OFF_T
typedef long off_t;
+#undef SIZEOF_OFF_T
+#define SIZEOF_OFF_T SIZEOF_LONG
#endif
#ifndef HAVE_SIZE_T
typedef unsigned int size_t;
diff --git a/support/lsh b/support/lsh
index 20171269..65488dc7 100755
--- a/support/lsh
+++ b/support/lsh
@@ -13,7 +13,7 @@ do_cd=y # Default path is user's home dir, just like ssh.
while : ; do
case "$1" in
-l) user="$2"; shift; shift ;;
- -l*) user=`echo $1 | sed 's/^-l//'`; shift ;;
+ -l*) user=`echo "$1" | sed 's/^-l//'`; shift ;;
--no-cd) do_cd=n; shift ;;
-*) shift ;;
localhost) shift; break ;;
@@ -22,9 +22,9 @@ while : ; do
done
if [ "$user" ]; then
- prefix="sudo -H -u $user"
+ prefix="sudo -H -u '$user'"
if [ $do_cd = y ]; then
- home=`perl -e "print((getpwnam("$user"))[7])"`
+ home=`perl -e "print((getpwnam('$user'))[7])"`
# Yeah, this may fail, but attempts to get sudo to cd are harder.
cd $home
fi
diff --git a/xattrs.c b/xattrs.c
index b818f7e9..ff8e6761 100644
--- a/xattrs.c
+++ b/xattrs.c
@@ -857,7 +857,7 @@ static int rsync_xal_set(const char *fname, item_list *xalp,
if (i == xalp->count) {
if (sys_lremovexattr(fname, name) < 0) {
rsyserr(FERROR_XFER, errno,
- "rsync_xal_clear: lremovexattr(\"%s\",\"%s\") failed",
+ "rsync_xal_set: lremovexattr(\"%s\",\"%s\") failed",
fname, name);
ret = -1;
} else /* make sure caller sets mtime */