bug with symlinks

Hans Ginzel hans at matfyz.cz
Sun Nov 10 17:51:00 EST 2002


	Hello,

  I am mirroring the debian tree using rsync. I realised following bug.
Version: 2.5.5-0.2 on Debian GNU/Linux. Rsync did not correct old symlinks.

	# ls -l debian-non-US/dists/
total 60
drwxr-xr-x    2 root     root         4096 Apr 17  2001 Debian2.2r7/
drwxr-xr-x    2 root     root         4096 Feb 28  2001 Debian3.0r0/
drwxr-xr-x    2 root     root         4096 Nov 10 02:30 old-proposed-updates/
drwxr-xr-x    2 root     root         4096 Apr 17  2001 oldstable/
drwxr-xr-x    3 root     root         4096 Feb 28  2001 potato/
drwxr-xr-x    2 root     root         4096 Oct 31 02:31 potato-proposed-updates/
lrwxrwxrwx    1 root     root           23 Jun 26 02:00 proposed-updates -> potato-proposed-updates/
drwxr-xr-x    3 root     root         4096 Jul 20 02:30 sarge/
drwxr-xr-x    3 root     root         4096 Jul 20 02:30 sarge-proposed-updates/
drwxr-xr-x    3 root     root         4096 Feb 28  2001 sid/
drwxr-xr-x    2 root     root         4096 Nov  5  2000 slink/
drwxr-xr-x    2 root     root         4096 Oct 23  2001 slink-proposed-updates/
lrwxrwxrwx    1 root     root            6 Jun 26 02:00 stable -> potato/
drwxr-xr-x    2 root     root         4096 Oct 31 02:31 stable-proposed-updates/
lrwxrwxrwx    1 root     root            5 Jun 26 02:00 testing -> woody/
drwxr-xr-x    2 root     root         4096 Jul 20 02:30 testing-proposed-updates/
lrwxrwxrwx    1 root     root            3 Jun 26 02:00 unstable -> sid/
drwxr-xr-x    3 root     root         4096 Feb 28  2001 woody/
drwxr-xr-x    3 root     root         4096 Oct 31 02:31 woody-proposed-updates/

	# rsync -vl ftp.linux.cz::pub/linux/debian-non-US/dists/
drwxr-xr-x        4096 2002/08/05 02:31:58 .
lrwxr-xr-x           6 2002/07/13 02:31:40 Debian2.2r7 -> potato
lrwxr-xr-x           5 2002/07/20 02:34:06 Debian3.0r0 -> woody
lrwxr-xr-x          23 2002/07/20 02:34:06 old-proposed-updates -> potato-proposed-updates
lrwxr-xr-x           6 2002/07/20 02:34:06 oldstable -> potato
drwxr-xr-x        4096 2001/04/17 02:32:18 potato
drwxr-xr-x        4096 2002/11/10 02:30:53 potato-proposed-updates
lrwxr-xr-x          22 2002/07/20 02:34:06 proposed-updates -> woody-proposed-updates
drwxr-xr-x        4096 2002/07/20 02:30:43 sarge
drwxr-xr-x        4096 2002/07/20 02:30:44 sarge-proposed-updates
drwxr-xr-x        4096 2001/02/28 02:33:39 sid
drwxr-xr-x        4096 2000/11/05 13:35:43 slink
drwxr-xr-x        4096 2001/10/23 02:36:31 slink-proposed-updates
lrwxr-xr-x           5 2002/07/20 02:34:06 stable -> woody
lrwxr-xr-x          22 2002/08/05 02:31:58 stable-proposed-updates -> woody-proposed-updates
lrwxr-xr-x           5 2002/07/20 02:34:06 testing -> sarge
lrwxr-xr-x          22 2002/07/20 02:34:06 testing-proposed-updates -> sarge-proposed-updates
lrwxr-xr-x           3 2001/04/12 17:18:28 unstable -> sid
drwxr-xr-x        4096 2001/02/28 02:33:39 woody
drwxr-xr-x        4096 2002/10/31 02:31:44 woody-proposed-updates
wrote 93 bytes  read 658 bytes  136.55 bytes/sec
total size is 119  speedup is 0.16

	# rsync -vvv -rlHpt -P --exclude Packages --delete -L ftp.linux.cz::pub/linux/debian-non-US/ --include=/dists/ --include=/dists/* --exclude=* debian-non-US 2>&1 1>rs.log

	# ls -l debian-non-US/dists/
total 60
drwxr-xr-x    2 root     root         4096 Apr 17  2001 Debian2.2r7/
drwxr-xr-x    2 root     root         4096 Feb 28  2001 Debian3.0r0/
drwxr-xr-x    2 root     root         4096 Nov 10 02:30 old-proposed-updates/
drwxr-xr-x    2 root     root         4096 Apr 17  2001 oldstable/
drwxr-xr-x    3 root     root         4096 Feb 28  2001 potato/
drwxr-xr-x    2 root     root         4096 Oct 31 02:31 potato-proposed-updates/
lrwxrwxrwx    1 root     root           23 Jun 26 02:00 proposed-updates -> potato-proposed-updates/
drwxr-xr-x    3 root     root         4096 Jul 20 02:30 sarge/
drwxr-xr-x    3 root     root         4096 Jul 20 02:30 sarge-proposed-updates/
drwxr-xr-x    3 root     root         4096 Feb 28  2001 sid/
drwxr-xr-x    2 root     root         4096 Nov  5  2000 slink/
drwxr-xr-x    2 root     root         4096 Oct 23  2001 slink-proposed-updates/
lrwxrwxrwx    1 root     root            6 Jun 26 02:00 stable -> potato/
drwxr-xr-x    2 root     root         4096 Oct 31 02:31 stable-proposed-updates/
lrwxrwxrwx    1 root     root            5 Jun 26 02:00 testing -> woody/
drwxr-xr-x    2 root     root         4096 Jul 20 02:30 testing-proposed-updates/
lrwxrwxrwx    1 root     root            3 Jun 26 02:00 unstable -> sid/
drwxr-xr-x    3 root     root         4096 Feb 28  2001 woody/
drwxr-xr-x    3 root     root         4096 Oct 31 02:31 woody-proposed-upda[18:46 root at geze:/mnt/mirror]tes/


     Links stable is to potato, but should be to woody. Why does not rsync relink the link?
I am including the log.

	Thanks and regards

								Hans Ginzel

--
http://www.matfyz.cz/hans/Unix/Debian/mirror_debian.pl
-------------- next part --------------
add_exclude(Packages,exclude)
add_exclude(/dists/,include)
add_exclude(/dists/*,include)
add_exclude(*,exclude)
opening tcp connection to ftp.linux.cz port 873
receiving file list ... 
recv_file_name(.)
recv_file_name(dists)
recv_file_name(dists/Debian2.2r7)
recv_file_name(dists/potato)
recv_file_name(dists/potato-proposed-updates)
recv_file_name(dists/proposed-updates)
recv_file_name(dists/sid)
recv_file_name(dists/slink)
recv_file_name(dists/slink-proposed-updates)
recv_file_name(dists/stable)
recv_file_name(dists/testing)
recv_file_name(dists/unstable)
recv_file_name(dists/woody)
recv_file_name(dists/woody-proposed-updates)
recv_file_name(dists/testing-proposed-updates)
recv_file_name(dists/sarge)
recv_file_name(dists/sarge-proposed-updates)
recv_file_name(dists/Debian3.0r0)
recv_file_name(dists/old-proposed-updates)
recv_file_name(dists/oldstable)
recv_file_name(dists/stable-proposed-updates)
received 21 names
21 files to consider
recv_file_list done
get_local_name count=21 debian-non-US
make_file(-1,.)
 0 files...
expand file_list to 4000 bytes, did move
including directory dists because of pattern /dists/
make_file(-1,dists)
including directory dists/Debian2.2r7 because of pattern /dists/*
make_file(-1,dists/Debian2.2r7)
including directory dists/potato because of pattern /dists/*
make_file(-1,dists/potato)
excluding directory dists/potato/non-US because of pattern *
including directory dists/potato-proposed-updates because of pattern /dists/*
make_file(-1,dists/potato-proposed-updates)
including directory dists/proposed-updates because of pattern /dists/*
make_file(-1,dists/proposed-updates)
including directory dists/sid because of pattern /dists/*
make_file(-1,dists/sid)
excluding directory dists/sid/non-US because of pattern *
including directory dists/slink because of pattern /dists/*
make_file(-1,dists/slink)
including directory dists/slink-proposed-updates because of pattern /dists/*
make_file(-1,dists/slink-proposed-updates)
including directory dists/stable because of pattern /dists/*
make_file(-1,dists/stable)
excluding directory dists/stable/non-US because of pattern *
including directory dists/testing because of pattern /dists/*
make_file(-1,dists/testing)
excluding directory dists/testing/non-US because of pattern *
including directory dists/unstable because of pattern /dists/*
make_file(-1,dists/unstable)
excluding directory dists/unstable/non-US because of pattern *
including directory dists/woody because of pattern /dists/*
make_file(-1,dists/woody)
excluding directory dists/woody/non-US because of pattern *
including directory dists/woody-proposed-updates because of pattern /dists/*
make_file(-1,dists/woody-proposed-updates)
excluding directory dists/woody-proposed-updates/non-US because of pattern *
including directory dists/testing-proposed-updates because of pattern /dists/*
make_file(-1,dists/testing-proposed-updates)
including directory dists/Debian3.0r0 because of pattern /dists/*
make_file(-1,dists/Debian3.0r0)
including directory dists/old-proposed-updates because of pattern /dists/*
make_file(-1,dists/old-proposed-updates)
including directory dists/oldstable because of pattern /dists/*
make_file(-1,dists/oldstable)
including directory dists/sarge because of pattern /dists/*
make_file(-1,dists/sarge)
excluding directory dists/sarge/non-US because of pattern *
including directory dists/sarge-proposed-updates because of pattern /dists/*
make_file(-1,dists/sarge-proposed-updates)
excluding directory dists/sarge-proposed-updates/non-US because of pattern *
including directory dists/stable-proposed-updates because of pattern /dists/*
make_file(-1,dists/stable-proposed-updates)
excluding directory pool because of pattern *
excluding file Packages.gz because of pattern *
send_file_list done
deleting in .
generator starting pid=1289 count=21
recv_generator(.,0)
recv_generator(dists,1)
recv_generator(dists/Debian2.2r7,2)
recv_generator(dists/Debian3.0r0,3)
recv_generator(dists/old-proposed-updates,4)
recv_generator(dists/oldstable,5)
recv_generator(dists/potato,6)
set modtime of dists/potato to (987467538) Tue Apr 17 02:32:18 2001
dists/potato/
recv_generator(dists/potato-proposed-updates,7)
set modtime of dists/potato-proposed-updates to (1036891853) Sun Nov 10 02:30:53 2002
dists/potato-proposed-updates/
recv_generator(dists/proposed-updates,8)
set modtime of dists/proposed-updates to (1036027904) Thu Oct 31 02:31:44 2002
dists/proposed-updates/
recv_generator(dists/sarge,9)
recv_generator(dists/sarge-proposed-updates,10)
recv_generator(dists/sid,11)
recv_generator(dists/slink,12)
recv_generator(dists/slink-proposed-updates,13)
recv_generator(dists/stable,14)
set modtime of dists/stable to (983324019) Wed Feb 28 02:33:39 2001
dists/stable/
recv_generator(dists/stable-proposed-updates,15)
recv_generator(dists/testing,16)
set modtime of dists/testing to (1027125043) Sat Jul 20 02:30:43 2002
dists/testing/
recv_generator(dists/testing-proposed-updates,17)
recv_generator(dists/unstable,18)
recv_generator(dists/woody,19)
set modtime of dists/woody to (983324019) Wed Feb 28 02:33:39 2001
dists/woody/
recv_generator(dists/woody-proposed-updates,20)
generate_files phase=1
recv_files(21) starting
recv_files phase=1
generate_files phase=2
recv_generator(.,0)
recv_generator(dists,1)
recv_generator(dists/Debian2.2r7,2)
recv_generator(dists/Debian3.0r0,3)
recv_generator(dists/old-proposed-updates,4)
recv_generator(dists/oldstable,5)
recv_generator(dists/potato,6)
set modtime of dists/potato to (987467538) Tue Apr 17 02:32:18 2001
recv_generator(dists/potato-proposed-updates,7)
set modtime of dists/potato-proposed-updates to (1036891853) Sun Nov 10 02:30:53 2002
recv_generator(dists/proposed-updates,8)
set modtime of dists/proposed-updates to (1036027904) Thu Oct 31 02:31:44 2002
recv_generator(dists/sarge,9)
recv_generator(dists/sarge-proposed-updates,10)
recv_generator(dists/sid,11)
recv_generator(dists/slink,12)
recv_generator(dists/slink-proposed-updates,13)
recv_generator(dists/stable,14)
set modtime of dists/stable to (983324019) Wed Feb 28 02:33:39 2001
recv_generator(dists/stable-proposed-updates,15)
recv_generator(dists/testing,16)
set modtime of dists/testing to (1027125043) Sat Jul 20 02:30:43 2002
recv_generator(dists/testing-proposed-updates,17)
recv_generator(dists/unstable,18)
recv_generator(dists/woody,19)
set modtime of dists/woody to (983324019) Wed Feb 28 02:33:39 2001
recv_generator(dists/woody-proposed-updates,20)
recv_files finished
wrote 148 bytes  read 494 bytes  256.80 bytes/sec
total size is 0  speedup is 0.00
_exit_cleanup(code=0, file=main.c, line=925): about to call exit(0)


More information about the rsync mailing list