Shown below are parts of the results of the CPAN command, the resulting
directory listing and the versions of Perl and tar.
Is there a newer version of the GNU utilities for Camelbox that will fix
this?
Bob McConnell
-----8<-------------------------------------------------
Fetching with LWP:
http://www.perl.org/CPAN/modules/03modlist.data.gz
Going to read C:\camelbox\.cpan\sources\modules\03modlist.data.gz
........................................................................
....DONE
Going to write C:\camelbox\.cpan\Metadata
Running install for module 'Test::Harness'
Running make for A/AN/ANDYA/Test-Harness-3.21.tar.gz
CPAN: Digest::SHA loaded ok (v5.45)
Checksum for
C:\camelbox\.cpan\sources\authors\id\A\AN\ANDYA\Test-Harness-3.21.t
ar.gz ok
Test-Harness-3.21
Build.PL
Changes
Changes-2.64
HACKING.pod
MANIFEST
MANIFEST.CUMMULATIVE
META.yml
Makefile.PL
README
perlcriticrc
bin
prove
examples
README
C:\camelbox\bin\tar.EXE: README: Could not create file: Permission
denied
analyze_tests.pl
my_exec
silent-harness.pl
test_urls.txt
bin
forked_tests.pl
test_html.pl
tprove_gtk
harness-hook
hook.pl
lib
Harness
Hook.pm
t
10-stuff.t
ruby.t
inc
MyBuilder.pm
lib
App
Prove.pm
Prove
C:\camelbox\bin\tar.EXE: prove: Could not create directory: Permission
denied
State.pm
State
Result.pm
Result
Test.pm
...
C:\camelbox\.cpan\build\tmp-Test>ls -al tmp-6268
total 2320
drwxrwxrwx 1 user group 0 Jun 21 08:55 .
drwxrwxrwx 1 user group 0 Jun 21 08:55 ..
-r--r--r-- 1 user group 2061 Jan 30 07:24 000-load.t
-r--r--r-- 1 user group 314 Jan 30 07:24 10-stuff.t
-r--r--r-- 1 user group 9274 Jan 30 07:24 Aggregator.pm
drwxrwxrwx 1 user group 0 Jun 21 08:55 App
-r--r--r-- 1 user group 1735 Jan 30 07:24 Array.pm
-r--r--r-- 1 user group 1181 Jan 30 07:24 Bailout.pm
-r--r--r-- 1 user group 2228 Jan 30 07:24 Base.pm
-r--r--r-- 1 user group 15424 Jan 30 07:24 Beyond.pod
-r--r--r-- 1 user group 1050 Jan 30 07:24 Build.PL
drwxrwxrwx 1 user group 0 Jun 21 08:55 Builder
-r--r--r-- 1 user group 42199 Jan 30 07:24 Builder.pm
-r--r--r-- 1 user group 35724 Jan 30 07:24 Changes
-r--r--r-- 1 user group 27433 Jan 30 07:24 Changes-2.64
-r--r--r-- 1 user group 3291 Jan 30 07:24 Color.pm
-r--r--r-- 1 user group 1019 Jan 30 07:24 Comment.pm
drwxrwxrwx 1 user group 0 Jun 21 08:55 Console
-r--r--r-- 1 user group 1789 Jan 30 07:24 Console.pm
drwxrwxrwx 1 user group 0 Jun 21 08:55 Dev
-r--r--r-- 1 user group 99 Jan 30 07:24 Dummy.pm
-r--r--r-- 1 user group 150 Jan 30 07:24 Dummy2.pm
-r--r--r-- 1 user group 426 Jan 30 07:24 EmptyParser.pm
-r--r--r-- 1 user group 4127 Jan 30 07:24 Executable.pm
drwxrwxrwx 1 user group 0 Jun 21 08:55 File
-r--r--r-- 1 user group 890 Jan 30 07:24 File.pm
drwxrwxrwx 1 user group 0 Jun 21 08:55 Formatter
-r--r--r-- 1 user group 15568 Jan 30 07:24 Grammar.pm
-r--r--r-- 1 user group 6322 Jan 30 07:24 HACKING.pod
-r--r--r-- 1 user group 2699 Jan 30 07:24 Handle.pm
drwxrwxrwx 1 user group 0 Jun 21 08:55 Harness
-r--r--r-- 1 user group 25881 Jan 30 07:24 Harness.pm
-r--r--r-- 1 user group 483 Jan 30 07:24 Hook.pm
drwxrwxrwx 1 user group 0 Jun 21 08:55 IO
drwxrwxrwx 1 user group 0 Jun 21 08:55 Iterator
-r--r--r-- 1 user group 3050 Jan 30 07:24 Iterator.pm
-r--r--r-- 1 user group 8111 Jan 30 07:24
IteratorFactory.pm
-r--r--r-- 1 user group 1672 Jan 30 07:24 Job.pm
...
C:\camelbox\.cpan\build\tmp-Test>perl --version
This is perl, v5.10.0 built for MSWin32-x86-multi-thread
Copyright 1987-2007, Larry Wall
Perl may be copied only under the terms of either the Artistic License
or the
GNU General Public License, which may be found in the Perl 5 source kit.
Complete documentation for Perl, including FAQ lists, should be found on
this system using "man perl" or "perldoc perl". If you have access to
the
Internet, point your browser at http://www.perl.org/, the Perl Home
Page.
C:\camelbox\.cpan\build\tmp-Test>tar --version
tar (GNU tar) 1.12
Copyright (C) 1988, 92, 93, 94, 95, 96, 97 Free Software Foundation,
Inc.
This is free software; see the source for copying conditions. There is
NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR
PURPOSE.
Written by John Gilmore and Jay Fenlason.
> I recently reinstalled camelbox_2009.167.2132Z-tahi.exe on
> WinXP Pro SP2. Now I am trying to update Test::Harness
> from CPAN, but it's not working. When CPAN tries to untar
> the archive, it creates the directories in the tmp-????
> directory, but puts all of the files there as well, instead
> of in those directories. When I go into the downloaded
> file at <C:\camelbox\.cpan\sources\authors\id\A\AN\ANDYA\Test-
> Harness-3.21.tar.gz> using WinZip 9.0 SR1 I see a lot of
> files but no paths. However, WinRAR correctly shows the
> full directory tree.
Looking at the two tar files with a binary viewer after uncompressing
them through gzip, I see several differences, but other than the
obvious, I don't know which are significant. The obvious difference is
that the tar file headers for 3.17 all have absolute paths for each
file. The 3.21 headers do not. The 3.21 headers also contain more fields
and some are padded differently, but I don't know what effect this would
have.
Doing a text comparison also suggests that 3.17 was in a Subversion
archive, while 3.21 is now in a GIT archive. I don't believe that should
have any impact on this problem, but it does suggest there may have been
some tooling changes that could contribute to this problem.
Has the tar file format been changed in the last, say ten years or so?
Or are there variations that not all utilities will recognize?
Bob McConnell
> Is there a newer version of the GNU utilities for Camelbox that will fix
> this?
Not that I know of. The workaround for this is to remove the tar
binary from CPAN's Config.pm file. I just confirmed Test::Harness
unpacks after you do this.
To remove the tar binary from Config.pm:
1) Open C:\camelbox\lib\CPAN\Config.pm in an editor that understands
Unix files (NOT notepad.exe; wordpad will work for this)
2) Find the line that says 'tar' => q[C:\\camelbox\\bin\\tar.EXE] and
remove the tar.EXE command; the tar command should look like this when
you're done:
'tar' => q[],
CPAN will then switch to using Archive::Tar when you go to
download/install modules.
Thanks,
Brian
The tar format has changed frequently, and yes, not all versions of
tar will recognize archive files created with a different version.
Solaris for example had a tar binary that would not properly unpack
GNU tar archive files for the longest time.
I've mentioned using the pure-Perl Archive::Tar in my previous e-mail
for unpacking Test::Harness. Unless you feel like compiling tar and
friends yourself on Windows, this is my suggested workaround for this
issue.
Thanks,
Brian
> On Mon, Jun 21, 2010 at 10:29 AM, Bob McConnell <r...@cbord.com> wrote:
>> From: Bob McConnell
>> Has the tar file format been changed in the last, say ten years or
so?
>> Or are there variations that not all utilities will recognize?
>
> The tar format has changed frequently, and yes, not all versions of
> tar will recognize archive files created with a different version.
> Solaris for example had a tar binary that would not properly unpack
> GNU tar archive files for the longest time.
After doing some more digging, from a Linux box this time, I have
determined that the application used to build the current tarballs is
putting the directory information into the prefix field in the header.
Apparently the older versions of tar do not expect that field to contain
anything until the name field is completely full.
The fix in config.pm took care of the install. I'll let you know if I
have any more problems. By the way, Textpad is a decent editor which
honors both line endings and encoding of the files it opens.
Thank you,
Bob McConnell
But not installed in Windows by default, hence my recommendation (for
future Google searchers) of wordpad, or any other text editor on
Windows besides Notepad and Word. I want to try and prevent problems
with line endings when people go to edit files on Windows. For what
it's worth, I use gvim on Windows.
Thanks,
Brian