bug-tar
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Bug-tar] GNU tar 1.13.92: broken --no-recursion


From: Ralf S. Engelschall
Subject: [Bug-tar] GNU tar 1.13.92: broken --no-recursion
Date: Wed, 7 Jan 2004 11:18:24 +0100
User-agent: Mutt/1.4.1i

During debugging of a problem in OpenPKG I discovered that the
--no-recursion option in GNU tar 1.13.92 is broken while it still works
as expected (at least by me ;-) in GNU tar 1.13.25. I was able to
deterministically repeat it under a Debian GNU/Linux 3.0 box:

1. test environment:

| $ ls -lRi test
| test:
| total 4
| 1820963 -rw-rw-r--    4 rse      rse             2 Jan  7 09:51 a
| 1820963 -rw-rw-r--    4 rse      rse             2 Jan  7 09:51 b
| 1820964 drwxrwxr-x    2 rse      rse          4096 Jan  7 11:06 subdir
|
| test/subdir:
| total 0
| 1820963 -rw-rw-r--    4 rse      rse             2 Jan  7 09:51 c
| 1820963 -rw-rw-r--    4 rse      rse             2 Jan  7 09:51 d

2. GNU tar 1.3.25:

| $ tar-1.13.25/src/tar -cvf - test test/a test/b test/subdir test/subdir/c 
test/subdir/d | tar-1.13.25/src/tar tvf -
| test/
| test/a
| test/b
| test/subdir/
| test/subdir/d
| test/subdir/c
| test/a
| test/b
| test/subdir/
| test/subdir/d
| test/subdir/c
| test/subdir/c
| test/subdir/d
| drwxrwxr-x rse/rse           0 2004-01-07 11:07:08 test/
| -rw-rw-r-- rse/rse           2 2004-01-07 09:51:11 test/a
| -rw-rw-r-- rse/rse           0 2004-01-07 09:51:11 test/b link to test/a
| drwxrwxr-x rse/rse           0 2004-01-07 11:06:57 test/subdir/
| -rw-rw-r-- rse/rse           0 2004-01-07 09:51:11 test/subdir/d link to 
test/a
| -rw-rw-r-- rse/rse           0 2004-01-07 09:51:11 test/subdir/c link to 
test/a
| -rw-rw-r-- rse/rse           0 2004-01-07 09:51:11 test/a link to test/a
| -rw-rw-r-- rse/rse           0 2004-01-07 09:51:11 test/b link to test/a
| drwxrwxr-x rse/rse           0 2004-01-07 11:06:57 test/subdir/
| -rw-rw-r-- rse/rse           0 2004-01-07 09:51:11 test/subdir/d link to 
test/a
| -rw-rw-r-- rse/rse           0 2004-01-07 09:51:11 test/subdir/c link to 
test/a
| -rw-rw-r-- rse/rse           0 2004-01-07 09:51:11 test/subdir/c link to 
test/a
| -rw-rw-r-- rse/rse           0 2004-01-07 09:51:11 test/subdir/d link to 
test/a
| $ tar-1.13.25/src/tar --no-recursion -cvf - test test/a test/b test/subdir 
test/subdir/c test/subdir/d | tar-1.13.25/src
| /tar tvf -
| test/
| test/a
| test/b
| test/subdir/
| test/subdir/c
| test/subdir/d
| drwxrwxr-x rse/rse           0 2004-01-07 11:07:08 test/
| -rw-rw-r-- rse/rse           2 2004-01-07 09:51:11 test/a
| -rw-rw-r-- rse/rse           0 2004-01-07 09:51:11 test/b link to test/a
| drwxrwxr-x rse/rse           0 2004-01-07 11:06:57 test/subdir/
| -rw-rw-r-- rse/rse           0 2004-01-07 09:51:11 test/subdir/c link to 
test/a
| -rw-rw-r-- rse/rse           0 2004-01-07 09:51:11 test/subdir/d link to 
test/a

3. GNU tar 1.3.92:

| $ tar-1.13.92/src/tar -cvf - test test/a test/b test/subdir test/subdir/c 
test/subdir/d | tar-1.13.92/src/tar tvf -
| test/
| test/a
| test/b
| test/subdir/
| test/subdir/d
| test/subdir/c
| test/a
| test/b
| test/subdir/
| test/subdir/d
| test/subdir/c
| test/subdir/c
| test/subdir/d
| drwxrwxr-x rse/rse           0 2004-01-07 11:07:08 test/
| -rw-rw-r-- rse/rse           2 2004-01-07 09:51:11 test/a
| hrw-rw-r-- rse/rse           0 2004-01-07 09:51:11 test/b link to test/a
| drwxrwxr-x rse/rse           0 2004-01-07 11:06:57 test/subdir/
| hrw-rw-r-- rse/rse           0 2004-01-07 09:51:11 test/subdir/d link to 
test/a
| hrw-rw-r-- rse/rse           0 2004-01-07 09:51:11 test/subdir/c link to 
test/a
| hrw-rw-r-- rse/rse           0 2004-01-07 09:51:11 test/a link to test/a
| hrw-rw-r-- rse/rse           0 2004-01-07 09:51:11 test/b link to test/a
| drwxrwxr-x rse/rse           0 2004-01-07 11:06:57 test/subdir/
| hrw-rw-r-- rse/rse           0 2004-01-07 09:51:11 test/subdir/d link to 
test/a
| hrw-rw-r-- rse/rse           0 2004-01-07 09:51:11 test/subdir/c link to 
test/a
| hrw-rw-r-- rse/rse           0 2004-01-07 09:51:11 test/subdir/c link to 
test/a
| hrw-rw-r-- rse/rse           0 2004-01-07 09:51:11 test/subdir/d link to 
test/a
| $ tar-1.13.92/src/tar --no-recursion -cvf - test test/a test/b test/subdir 
test/subdir/c test/subdir/d | tar-1.13.92/src/tar tvf -
| test/
| test/a
| test/b
| test/subdir/
| test/subdir/d
| test/subdir/c
| test/a
| test/b
| test/subdir/
| test/subdir/d
| test/subdir/c
| test/subdir/c
| test/subdir/d
| drwxrwxr-x rse/rse           0 2004-01-07 11:07:08 test/
| -rw-rw-r-- rse/rse           2 2004-01-07 09:51:11 test/a
| hrw-rw-r-- rse/rse           0 2004-01-07 09:51:11 test/b link to test/a
| drwxrwxr-x rse/rse           0 2004-01-07 11:06:57 test/subdir/
| hrw-rw-r-- rse/rse           0 2004-01-07 09:51:11 test/subdir/d link to 
test/a
| hrw-rw-r-- rse/rse           0 2004-01-07 09:51:11 test/subdir/c link to 
test/a
| hrw-rw-r-- rse/rse           0 2004-01-07 09:51:11 test/a link to test/a
| hrw-rw-r-- rse/rse           0 2004-01-07 09:51:11 test/b link to test/a
| drwxrwxr-x rse/rse           0 2004-01-07 11:06:57 test/subdir/
| hrw-rw-r-- rse/rse           0 2004-01-07 09:51:11 test/subdir/d link to 
test/a
| hrw-rw-r-- rse/rse           0 2004-01-07 09:51:11 test/subdir/c link to 
test/a
| hrw-rw-r-- rse/rse           0 2004-01-07 09:51:11 test/subdir/c link to 
test/a
| hrw-rw-r-- rse/rse           0 2004-01-07 09:51:11 test/subdir/d link to 
test/a

As you can see, in 1.13.92 the --no-recursion options looks actually
more or less like a no-op.

There is still a chance that I perhaps misunderstand --no-recursion. But
the semantics of the 1.13.25 is very important in OpenPKG (we have to
roll tarballs out of a selected list of files although more are staying
around, so we specify all files explicitly), so if the new behaviour is
not a bug, please tell me how else I can achieve the old semantics.

Thanks.
                                       Ralf S. Engelschall
                                       address@hidden
                                       www.engelschall.com





reply via email to

[Prev in Thread] Current Thread [Next in Thread]