Skip Menu |

This queue is for tickets about the Archive-Tar CPAN distribution.

Report information
The Basics
Id: 7209
Status: resolved
Priority: 0/
Queue: Archive-Tar

People
Owner: Nobody in particular
Requestors: Paul.Marquess [...] btinternet.com
Cc:
AdminCc:

Bug Information
Severity: Normal
Broken in: 1.10
Fixed in: (no value)



Subject: Problem extracting empty files
Consider the code at the end of the message -- all it does is create a tar file with a number of files in it. It then uses Archive::Tar to list its contents. The important point is that one of the files, "fred/c", in the tar is empty. The behaviour I'm seeing is that Archive::Tar seems to think that the empty file is the last thing in the archive. Here is what I get when I run the script. I assume this isn't expected behaviour? Archive::Tar version 1.10 Archive contains 4 files fred/ fred/a fred/b fred/c drwxr-xr-x pmarques/wap 0 2004-07-22 15:00:21 fred/ -rw-r--r-- pmarques/wap 6 2004-07-22 15:10:31 fred/a -rw-r--r-- pmarques/wap 6 2004-07-22 15:10:31 fred/b -rw-r--r-- pmarques/wap 0 2004-07-22 15:10:31 fred/c -rw-r--r-- pmarques/wap 6 2004-07-22 15:10:31 fred/d -rw-r--r-- pmarques/wap 6 2004-07-22 15:10:31 fred/e Cheers Paul use Archive::Tar ; use strict; use warnings; print "Archive::Tar version $Archive::Tar::VERSION\n" ; my $archive = 'fred.tar'; my $dir = 'fred'; mkdir $dir ; system "echo hello >$dir/a" ; system "echo hello >$dir/b" ; system "touch $dir/c" ; system "echo hello >$dir/d" ; system "echo hello >$dir/e" ; system "tar cf $archive $dir" ; my $tar = Archive::Tar->new; my $count = $tar->read($archive); print "Archive contains $count files\n"; my @list = $tar->list_files(); print "\t$_\n" foreach @list ; print "\n"; system "tar tvf $archive" ; $ perl -V Summary of my perl5 (revision 5.0 version 8 subversion 0) configuration: Platform: osname=linux, osvers=2.4.21-1.1931.2.393.entsmp, archname=i386-linux-thread-multi uname='linux por' config_args='-des -Doptimize=-O2 -g -pipe -march=i386 -mcpu=i686 -Dmyhostname=localhost -Dperladmin=root@localhost -Dcc=gcc -Dcf_by=Red Hat, Inc. -Dinstallprefix=/usr -Dprefix=/usr -Darchname=i386-linux -Dvendorprefix=/usr -Dsiteprefix=/usr -Dotherlibdirs=/usr/lib/perl5/5.8.0 -Duseshrplib -Dusethreads -Duseithreads -Duselargefiles -Dd_dosuid -Dd_semctl_semun -Di_db -Ui_ndbm -Di_gdbm -Di_shadow -Di_syslog -Dman3ext=3pm -Duseperlio -Dinstallusrbinperl -Ubincompat5005 -Uversiononly -Dpager=/usr/bin/less -isr' hint=recommended, useposix=true, d_sigaction=define usethreads=define use5005threads=undef' useithreads=define usemultiplicity= useperlio= d_sfio=undef uselargefiles=define usesocks=undef use64bitint=undef use64bitall=un uselongdouble= usemymalloc=, bincompat5005=undef Compiler: cc='gcc', ccflags ='-D_REENTRANT -D_GNU_SOURCE -DTHREADS_HAVE_PIDS -DDEBUGGING -fno-strict-aliasing -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -I/usr/include/gdbm', optimize='', cppflags='-D_REENTRANT -D_GNU_SOURCE -DTHREADS_HAVE_PIDS -DDEBUGGING -fno-strict-aliasing -I/usr/local/include -I/usr/include/gdbm' ccversion='', gccversion='3.2.3 20030502 (Red Hat Linux 3.2.3-19)', gccosandvers='' gccversion='3.2.3 200305' intsize=o, longsize=s, ptrsize=l, doublesize=8, byteorder=1234 d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=12 ivtype='long' k', ivsize=4' ivtype, nvtype='double' o_no', nvsize=, Off_t='', lseeksize=8 alignbytes=4, prototype=define Linker and Libraries: ld='gcc' l', ldflags =' -L/usr/local/lib' ldflags_use' libpth=/usr/local/lib /lib /usr/lib libs=-lnsl -lgdbm -ldb -ldl -lm -lpthread -lc -lcrypt -lutil perllibs= libc=/lib/libc-2.3.2.so, so=so, useshrplib=true, libperl=libper gnulibc_version='2.3.2' Dynamic Linking: dlsrc=dl_dlopen.xs, dlext=so', d_dlsymun=undef, ccdlflags='-rdynamic -Wl,-rpath,/usr/lib/perl5/5.8.0/i386-linux-thread-multi/CORE' cccdlflags='-fPIC' ccdlflags='-rdynamic -Wl,-rpath,/usr/lib/perl5', lddlflags='s Unicode/Normalize XS/A' Characteristics of this binary (from libperl): Compile-time options: DEBUGGING MULTIPLICITY USE_ITHREADS USE_LARGE_FILES PERL_IMPLICIT_CONTEXT Locally applied patches: MAINT18379 Built under linux Compiled at Sep 15 2003 10:03:52 %ENV: PERL5LIB="/workspace3/tmp/marquess/tmp-install/lib/perl5/5.8.0/:/workspace3/tmp/marquess/tmp-install/lib/perl5/site_perl/:/mine/perl/lib/site_perl:/mine/perl/lib/:/users/pmarques/perl5lib" @INC: /workspace3/tmp/marquess/tmp-install/lib/perl5/5.8.0//i386-linux-thread-multi /workspace3/tmp/marquess/tmp-install/lib/perl5/5.8.0/ /workspace3/tmp/marquess/tmp-install/lib/perl5/site_perl//5.8.0/i386-linux-thread-multi /workspace3/tmp/marquess/tmp-install/lib/perl5/site_perl//5.8.0 /workspace3/tmp/marquess/tmp-install/lib/perl5/site_perl/ /mine/perl/lib/site_perl /mine/perl/lib/ /users/pmarques/perl5lib /usr/lib/perl5/5.8.0/i386-linux-thread-multi /usr/lib/perl5/5.8.0 /usr/lib/perl5/site_perl/5.8.0/i386-linux-thread-multi /usr/lib/perl5/site_perl/5.8.0 /usr/lib/perl5/site_perl /usr/lib/perl5/vendor_perl/5.8.0/i386-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.0 /usr/lib/perl5/vendor_perl /usr/lib/perl5/5.8.0/i386-linux-thread-multi /usr/lib/perl5/5.8.0 .
From: Paul.Marquess [...] btinternet.com
Firstly, sorry for the duplicates of this ticket (7211 and 7212). I think it was the refresh button on my browser. Now regarding the problem report. False alarm. I'm rewriting Compress::Zlib, which is used indirectly by Archive::Tar (via IO::Zlib). I accidentally had my PERL5LIB variable set to point to my development copy of Compress::Zlib. The good news is that the failure in the Archive::Tar test harness directed me to a problem with my rewrite of Compress::Zlib. This is now fixed and the the Archive::Tar test harness now works fine with the new Compress::Zlib. cheers Paul
D'oh, i didn't notice you replied to 7109 to say it's not a bug... i was looking at 7112... ignore last mail :)