Subject: | `perl Build dist` creating flattened archive on WinXP |
Hi,
I'm having a problem on WinXP, whereby
perl Build dist
generates a flat .tar, while
perl Build dist --tar tar.exe --gzip gzip.exe
does the right thing.
I understand that Module::Build is supposed to use Archive::Tar when running on Windows (where you can't guarantee a system tar), but I'm not sure if this is a problem with Module::Build or Archive::Tar.
Full details follow, of course I'll provide additional details if I've been silly and left something useful out! :-)
Regards,
Hakim (osfameron)
Show quoted text
---- versions ----
Microsoft Windows XP [Version 5.1.2600]
This is perl, v5.8.4 built for MSWin32-x86-multi-thread
Module::Build 0.2604 (and updated to latest 0.2609 with same result)
Archive::Tar 1.08 (and updated to latest 1.23)
tar --version # tar (GNU tar) 1.12
gunzip --version # gunzip 1.2.4 (18 Aug 93)
gzip --version # gzip 1.2.4 (18 Aug 93)
-------------------
---- Build.PL contains ----
use Module::Build;
my $build = Module::Build->new
(
module_name => 'Tie::Hash::Struct',
license => 'perl',
requires => {
'perl' => '5.6.1',
'YAML' => 0,
},
build_requires => {
'Test::More' => 0,
},
);
$build->create_build_script;
-----------------------------
K:\code\perl\Tie-Hash-Struct> perl Build.PL
K:\code\perl\Tie-Hash-Struct> perl Build
K:\code\perl\Tie-Hash-Struct> perl Build dist
Deleting META.yml
Couldn't load YAML.pm, generating a minimal META.yml without it.
Please check and edit the generated metadata, or consider installing YAML.pm.
Creating Tie-Hash-Struct-0.02.tar.gz
Deleting Tie-Hash-Struct-0.02
# I don't know why it claims it can't find YAML, which is very happily
# installed.
# now, from a temporary directory
K:\code\perl\Tie-Hash-Struct\temp>gunzip Tie-Hash-Struct-0.02.tar.gz
K:\code\perl\Tie-Hash-Struct\temp>tar -xf Tie-Hash-Struct-0.02.tar
K:\code\perl\Tie-Hash-Struct\temp>tree /f
Folder PATH listing
Volume serial number is 0000367C 39C2:06B6
K:.
¦ 00use.t
¦ 01basic.t
¦ Build.PL
¦ MANIFEST
¦ META.yml
¦ Struct.pm
¦ Tie-Hash-Struct-0.02.tar
¦
+---Hash
+---lib
+---t
+---Tie
+---Tie-Hash-Struct-0.02
# e.g., it has flattened the directory structure. You can't build from this!
# If I run this instead
K:\code\perl\Tie-Hash-Struct>perl Build dist --tar tar.exe --gzip gzip.exe
# then gunzip- and untarring the distribution gives the lovely:
K:\code\perl\Tie-Hash-Struct\temp2\Tie-Hash-Struct-0.02>tree /f
Folder PATH listing
Volume serial number is 00630075 39C2:06B6
K:.
¦ Build.PL
¦ MANIFEST
¦ META.yml
¦ Struct.pm
¦
+---lib
¦ +---Tie
¦ +---Hash
¦ Struct.pm
¦
+---t
00use.t
01basic.t