Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cygwin-owner AT cygwin DOT com Mail-Followup-To: cygwin AT cygwin DOT com Delivered-To: mailing list cygwin AT cygwin DOT com Date: Mon, 10 Nov 2003 13:25:02 +0000 (GMT) From: Jeremy Green X-X-Sender: jg210 AT dipsy DOT eng DOT gla DOT ac DOT uk To: cygwin AT cygwin DOT com Subject: Re: New tar available for testing (was Re: here is a patch for gnu tar incremental backup...) Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII On Sat, Nov 8, 2003 cgf wrote: > Thanks for the patch but I don't think it is quite right and I don't > think it catches everything. > > I'm uploading a new version of tar for testing now. I'd appreciate > feedback (to the cygwin list) on whether it solves the reported problem. The binary you've uploaded, and the binary I built from the new source exhibit the same problem that tar-1.13.25-3 showed: $ touch f1 $ mkdir foo $ touch foo/bar $ ls -lR files/ files/: total 0 -rw-r--r-- 1 jeremy None 0 Nov 10 12:26 f1 drwxr-xr-x+ 2 jeremy None 0 Nov 10 12:26 foo files/foo: total 0 -rw-r--r-- 1 jeremy None 0 Nov 10 12:26 bar $ /usr/src/tar-1.13.25-4/src/tar --verbose --listed-incremental=list \ -cf archive.tar files /usr/src/tar-1.13.25-4/src/tar: files/foo: Directory is new files/ files/foo/ files/f1 files/foo/bar $ /usr/src/tar-1.13.25-4/src/tar --verbose --listed-incremental=list -cf archive.tar files /usr/src/tar-1.13.25-4/src/tar: files/foo: Directory has been renamed files/ files/foo/ files/foo/bar I.e. files/foo/bar is backed-up even though it hasn't changed. With the application of the following patch to the tar-1.13.25-4 source package: --- src/incremen.c.orig 2003-11-10 12:27:36.094206400 +0000 +++ src/incremen.c 2003-11-10 12:33:06.629492800 +0000 @@ -437,7 +437,7 @@ read_directory_file (void) errno = 0; #ifdef __CYGWIN_USE_BIG_TYPES__ - ino = strtoul (strp, &ebuf, 10); + ino = strtoull (strp, &ebuf, 10); #else ino = strtoul (strp, &ebuf, 10); #endif The test works as expected: $ rm list $ /usr/src/tar-1.13.25-4/src/tar --verbose \ --listed-incremental=list -cf archive.tar files /usr/src/tar-1.13.25-4/src/tar: files/foo: Directory is new files/ files/foo/ files/f1 files/foo/bar $ cat list 1068469530 +3160087061 8677873531989524896 files/foo $ /usr/src/tar-1.13.25-4/src/tar --verbose \ --listed-incremental=list -cf archive.tar files files/ files/foo/ However, if I use the tar-1.13.25-1 binary using this list file, I get... $ cygcheck -c tar Cygwin Package Information Package Version Status tar 1.13.25-1 OK $ tar --verbose --listed-incremental=list -cf archive.tar files tar: list:2: Device number out of range tar: list:2: Inode number out of range tar: files/foo: Directory has been renamed files/ files/foo/ files/foo/bar tar: Error exit delayed from previous errors $ tar --verbose --listed-incremental=list -cf archive.tar files files/ files/foo/ ichthus$ cat list 1068469660 23317 2020475296 files/foo i.e. different inode and device numbers are stored in the list file by tar-1.13.25-1 and the patched version of tar-1.13.25-4. This doesn't really matter as far as I'm concerned. Jeremy -- Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple Problem reports: http://cygwin.com/problems.html Documentation: http://cygwin.com/docs.html FAQ: http://cygwin.com/faq/