Package: libarchive-tar-perl Version: 1.23-1 When trying to unpack files from a read archive to a different location (not from current working dir), Archive::Tar creates an additional directory named like the file in the path. Example:
------------------------------------------- use Tar; my $tar = Archive::Tar->new(); $tar->read("knockd.tgz", 1); foreach $name ($tar->list_files()) { my $fullpath = "/tmp/test/" . $name; print "fullpath:$fullpath\n"; $tar->extract_file($name, $fullpath); $tar->extract_file($name); } ------------------------------------------- the knockd.tgz contains: drwxr-xr-x root/root 0 2004-10-25 18:38:05 etc/ -rw------- root/root 603 2004-10-25 18:38:05 etc/knockd.conf drwxr-xr-x root/root 0 2004-10-25 18:38:05 etc/default/ -rw------- root/root 299 2004-10-25 18:38:05 etc/default/knockd resulting in the following files (after using the code above to unpack): drwxr-xr-x arne/arne 0 2005-04-21 15:35:46 etc/ drwxr-xr-x arne/arne 0 2005-04-21 15:35:46 etc/knockd.conf/ -rw------- arne/arne 603 2004-10-25 18:38:05 etc/knockd.conf/knockd.conf drwxr-xr-x arne/arne 0 2005-04-21 15:35:46 etc/default/ drwxr-xr-x arne/arne 0 2005-04-21 15:35:46 etc/default/knockd/ -rw------- arne/arne 299 2004-10-25 18:38:05 etc/default/knockd/knockd The following patch for Archive::Tar.pm seems to fix this: --- Tar.pm.old 2005-04-21 15:55:12.000000000 +0200 +++ Tar.pm 2005-04-21 15:53:21.000000000 +0200 @@ -470,8 +470,8 @@ $entry->is_dir ); my $dir; ### is $name an absolute path? ### - if( File::Spec->file_name_is_absolute( $name ) ) { - $dir = $name; + if( File::Spec->file_name_is_absolute( $dirs ) ) { + $dir = $dirs; ### it's a relative path ### } else { -- Arne Bernin <[EMAIL PROTECTED]> -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]