diff -u -r --new-file --exclude=CVS rsync-2.4.0/backup.c rsync-2.4.1/backup.c --- rsync-2.4.0/backup.c Sat Jan 29 22:35:03 2000 +++ rsync-2.4.1/backup.c Sun Jan 30 12:02:01 2000 @@ -134,10 +134,14 @@ int failed; while (keep_trying) { - if (keep_path_extfs) - failed = copy_file (src, dst, 0755); - else + if (keep_path_extfs) { + failed = copy_file(src, dst, 0755); + if (!failed) { + do_unlink(src); + } + } else { failed = robust_rename (src, dst); + } if (failed) { if (verbose > 2) diff -u -r --new-file --exclude=CVS rsync-2.4.0/cleanup.c rsync-2.4.1/cleanup.c --- rsync-2.4.0/cleanup.c Wed Apr 7 01:04:16 1999 +++ rsync-2.4.1/cleanup.c Sun Jan 30 12:02:01 2000 @@ -39,6 +39,7 @@ if (code == 0 && io_error) code = RERR_FILEIO; signal(SIGUSR1, SIG_IGN); + signal(SIGUSR2, SIG_IGN); if (cleanup_got_literal && cleanup_fname && keep_partial) { char *fname = cleanup_fname; diff -u -r --new-file --exclude=CVS rsync-2.4.0/cvs.log rsync-2.4.1/cvs.log --- rsync-2.4.0/cvs.log Sat Jan 29 22:35:48 2000 +++ rsync-2.4.1/cvs.log Sun Jan 30 12:03:07 2000 @@ -10922,3 +10922,81 @@ Log Message: preparing for release of 2.4.0 + +**************************************** +Date: Sunday January 30, 2000 @ 10:49 +Author: tridge + +Update of /data/cvs/rsync +In directory samba:/tmp/cvs-serv8991 + +Modified Files: + main.c rsync.h +Log Message: +damn. + +with the new error handling code it is possible for rsync to get stuck +on the final transaction, leaving it hung. + +looks like 2.4.1 will be pretty soon + + + +**************************************** +Date: Sunday January 30, 2000 @ 11:50 +Author: tridge + +Update of /data/cvs/rsync +In directory samba:/tmp/cvs-serv19624 + +Modified Files: + cleanup.c io.c main.c test.sh +Log Message: +another hang-at-end fix. It looks like we are more sensiitive to +these with socketpairs. The receiver now sleeps until it gets a signal +to tell it to exit + +also fixed test.sh to use the current version remotely + + + +**************************************** +Date: Sunday January 30, 2000 @ 11:56 +Author: tridge + +Update of /data/cvs/rsync +In directory samba:/tmp/cvs-serv15863 + +Modified Files: + backup.c +Log Message: +patch from Jim Delahanty to ensure files are +deleted after being backed up in a rename operation + + + +**************************************** +Date: Sunday January 30, 2000 @ 12:02 +Author: rsync-bu + +Update of /data/cvs/rsync +In directory samba:/data/people/rsync-bugs/rsync + +Modified Files: + version.h +Log Message: +preparing for release of 2.4.1 + + +**************************************** +Date: Sunday January 30, 2000 @ 12:02 +Author: rsync-bu + +Update of /data/cvs/rsync/packaging/redhat/5.0 +In directory samba:/data/people/rsync-bugs/rsync/packaging/redhat/5.0 + +Modified Files: + rsync.spec +Log Message: +preparing for release of 2.4.1 + diff -u -r --new-file --exclude=CVS rsync-2.4.0/io.c rsync-2.4.1/io.c --- rsync-2.4.0/io.c Sat Jan 29 22:35:03 2000 +++ rsync-2.4.1/io.c Sun Jan 30 12:02:01 2000 @@ -599,3 +599,4 @@ { buffer_f_in = -1; } + diff -u -r --new-file --exclude=CVS rsync-2.4.0/main.c rsync-2.4.1/main.c --- rsync-2.4.0/main.c Sat Jan 29 22:35:03 2000 +++ rsync-2.4.1/main.c Sun Jan 30 12:02:01 2000 @@ -283,6 +283,7 @@ extern int delete_after; extern int recurse; extern int delete_mode; + extern int remote_version; if (preserve_hard_links) init_hard_links(flist); @@ -320,8 +321,12 @@ recv_files(f_in,flist,local_name,recv_pipe[1]); report(f_in); + write_int(recv_pipe[1],1); + close(recv_pipe[1]); io_flush(); - _exit(0); + /* finally we go to sleep until our parent kills us with + a USR2 signal */ + while (1) sleep(60); } close(recv_pipe[1]); @@ -335,7 +340,15 @@ generate_files(f_out,flist,local_name,recv_pipe[0]); + read_int(recv_pipe[0]); + close(recv_pipe[0]); + if (remote_version >= 24) { + /* send a final goodbye message */ + write_int(f_out, -1); + } io_flush(); + + kill(pid, SIGUSR2); wait_process(pid, &status); return status; } @@ -452,6 +465,10 @@ wait_process(pid, &status); } report(-1); + if (remote_version >= 24) { + /* final goodbye message */ + read_int(f_in); + } exit_cleanup(status); } @@ -609,6 +626,10 @@ exit_cleanup(RERR_SIGNAL); } +static RETSIGTYPE sigusr2_handler(int val) { + _exit(0); +} + int main(int argc,char *argv[]) { extern int am_root; @@ -618,6 +639,7 @@ extern int am_server; signal(SIGUSR1, sigusr1_handler); + signal(SIGUSR2, sigusr2_handler); starttime = time(NULL); am_root = (getuid() == 0); diff -u -r --new-file --exclude=CVS rsync-2.4.0/packaging/redhat/5.0/rsync.spec rsync-2.4.1/packaging/redhat/5.0/rsync.spec --- rsync-2.4.0/packaging/redhat/5.0/rsync.spec Sat Jan 29 22:35:34 2000 +++ rsync-2.4.1/packaging/redhat/5.0/rsync.spec Sun Jan 30 12:02:58 2000 @@ -1,10 +1,10 @@ Summary: Program for efficient remote updates of files. Name: rsync -Version: 2.4.0 +Version: 2.4.1 Release: 1 Copyright: GPL Group: Applications/Networking -Source: ftp://samba.anu.edu.au/pub/rsync/rsync-2.4.0.tar.gz +Source: ftp://samba.anu.edu.au/pub/rsync/rsync-2.4.1.tar.gz URL: http://samba.anu.edu.au/rsync/ Packager: Andrew Tridgell BuildRoot: /tmp/rsync diff -u -r --new-file --exclude=CVS rsync-2.4.0/rsync.h rsync-2.4.1/rsync.h --- rsync-2.4.0/rsync.h Sat Jan 29 22:35:03 2000 +++ rsync-2.4.1/rsync.h Sun Jan 30 12:02:01 2000 @@ -47,7 +47,7 @@ #define SAME_TIME (1<<7) /* update this if you make incompatible changes */ -#define PROTOCOL_VERSION 23 +#define PROTOCOL_VERSION 24 #define MIN_PROTOCOL_VERSION 15 #define MAX_PROTOCOL_VERSION 30 diff -u -r --new-file --exclude=CVS rsync-2.4.0/test.sh rsync-2.4.1/test.sh --- rsync-2.4.0/test.sh Sat Jan 29 22:35:03 2000 +++ rsync-2.4.1/test.sh Sun Jan 30 12:02:02 2000 @@ -24,7 +24,9 @@ do not indicate a problem with rsync. EOF - export PATH=.:$PATH + +RSYNC=`pwd`/rsync + runtest() { echo -n "Test $1: " eval "$2" @@ -123,33 +125,33 @@ # Main script starts here -runtest "basic operation" 'checkit "rsync -av ${FROM}/ ${TO}" ${FROM}/ ${TO}' +runtest "basic operation" 'checkit "$RSYNC -av ${FROM}/ ${TO}" ${FROM}/ ${TO}' ln ${FROM}/pslist ${FROM}/dir -runtest "hard links" 'checkit "rsync -avH ${FROM}/ ${TO}" ${FROM}/ ${TO}' +runtest "hard links" 'checkit "$RSYNC -avH ${FROM}/ ${TO}" ${FROM}/ ${TO}' rm ${TO}/${F1} -runtest "one file" 'checkit "rsync -avH ${FROM}/ ${TO}" ${FROM}/ ${TO}' +runtest "one file" 'checkit "$RSYNC -avH ${FROM}/ ${TO}" ${FROM}/ ${TO}' echo "extra line" >> ${TO}/${F1} -runtest "extra data" 'checkit "rsync -avH ${FROM}/ ${TO}" ${FROM}/ ${TO}' +runtest "extra data" 'checkit "$RSYNC -avH ${FROM}/ ${TO}" ${FROM}/ ${TO}' cp ${FROM}/${F1} ${TO}/ThisShouldGo -runtest " --delete" 'checkit "rsync --delete -avH ${FROM}/ ${TO}" ${FROM}/ ${TO}' +runtest " --delete" 'checkit "$RSYNC --delete -avH ${FROM}/ ${TO}" ${FROM}/ ${TO}' LONGDIR=${FROM}/This-is-a-directory-with-a-stupidly-long-name-created-in-an-attempt-to-provoke-an-error-found-in-2.0.11-that-should-hopefully-never-appear-again-if-this-test-does-its-job/This-is-a-directory-with-a-stupidly-long-name-created-in-an-attempt-to-provoke-an-error-found-in-2.0.11-that-should-hopefully-never-appear-again-if-this-test-does-its-job/This-is-a-directory-with-a-stupidly-long-name-created-in-an-attempt-to-provoke-an-error-found-in-2.0.11-that-should-hopefully-never-appear-again-if-this-test-does-its-job mkdir -p ${LONGDIR} date > ${LONGDIR}/1 ls -la / > ${LONGDIR}/2 -runtest "long paths" 'checkit "rsync --delete -avH ${FROM}/ ${TO}" ${FROM}/ ${TO}' +runtest "long paths" 'checkit "$RSYNC --delete -avH ${FROM}/ ${TO}" ${FROM}/ ${TO}' if type ssh >/dev/null 2>&1; then if [ "`ssh -o'BatchMode yes' localhost echo yes 2>/dev/null`" = "yes" ]; then rm -rf ${TO} - runtest "ssh: basic test" 'checkit "rsync -avH -e ssh ${FROM}/ localhost:${TO}" ${FROM}/ ${TO}' + runtest "ssh: basic test" 'checkit "$RSYNC -avH -e ssh --rsync-path=$RSYNC ${FROM}/ localhost:${TO}" ${FROM}/ ${TO}' mv ${TO}/${F1} ${TO}/ThisShouldGo - runtest "ssh: renamed file" 'checkit "rsync --delete -avH -e ssh ${FROM}/ localhost:${TO}" ${FROM}/ ${TO}' + runtest "ssh: renamed file" 'checkit "$RSYNC --delete -avH -e ssh --rsync-path=$RSYNC ${FROM}/ localhost:${TO}" ${FROM}/ ${TO}' else printmsg "Skipping SSH tests because ssh conection to localhost not authorised" fi @@ -161,7 +163,7 @@ mkdir -p ${FROM}2/dir/subdir cp -a ${FROM}/dir/subdir/subsubdir ${FROM}2/dir/subdir cp ${FROM}/dir/* ${FROM}2/dir 2>/dev/null -runtest "excludes" 'checkit "rsync -vv -Hlrt --delete --include /dir/ --include /dir/\* --include /dir/\*/subsubdir --include /dir/\*/subsubdir/\*\* --exclude \*\* ${FROM}/dir ${TO}" ${FROM}2/ ${TO}' +runtest "excludes" 'checkit "$RSYNC -vv -Hlrt --delete --include /dir/ --include /dir/\* --include /dir/\*/subsubdir --include /dir/\*/subsubdir/\*\* --exclude \*\* ${FROM}/dir ${TO}" ${FROM}2/ ${TO}' rm -r ${FROM}2 checkforlogs ${LOG}.? diff -u -r --new-file --exclude=CVS rsync-2.4.0/version.h rsync-2.4.1/version.h --- rsync-2.4.0/version.h Sat Jan 29 22:35:33 2000 +++ rsync-2.4.1/version.h Sun Jan 30 12:02:57 2000 @@ -1 +1 @@ -#define VERSION "2.4.0" +#define VERSION "2.4.1"