Skip Menu |

This queue is for tickets about the Shipwright CPAN distribution.

Report information
The Basics
Id: 47999
Status: resolved
Priority: 0/
Queue: Shipwright

People
Owner: Nobody in particular
Requestors: garu [...] cpan.org
Cc: szabgab [...] gmail.com
AdminCc:

Bug Information
Severity: Important
Broken in: (no value)
Fixed in: (no value)



CC: szabgab [...] gmail.com
Subject: Shipwright breaks importing modules that use Module::Install
Hi! First of all, thanks for bringing shipwright to the world and maintaining it for the community - it's looking more promising every day! We're trying to build a packaged Padre with shipwright and it but getting the following error: ----------8<---------- $ shipwright create -r fs:shipwright-padre created with success $ shipwright import -r fs:shipwright-padre/ cpan:Padre CPAN related output will be at /tmp/shipwright_cpan.log Fetching with LWP: http://www.mirrorspace.org/cpan/authors/id/G/GA/GARU/Padre-0.40.tar.gz something wrong when execute /usr/bin/perl shipwright_makefile.pl: 6400 the output is: Found locale en_US.UTF-8 Found wxWidgets 2.8.8 Found Wx.pm 0.91 Writing Makefile for Padre the error is: Can't locate object method "Dump" via package "Data::Dumper" at shipwright_makefile.pl line 102. END failed--call queue aborted. at /usr/local/share/perl/5.10.0/Shipwright/Util.pm line 72 Shipwright::Util::run('Shipwright::Util', 'ARRAY(0x9cf56d8)') called at /usr/local/share/perl/5.10.0/Shipwright/Source/Base.pm line 303 Shipwright::Source::Base::_follow('Shipwright::Source::Compressed=HASH(0xb7b065b8)', '/tmp/shipwright_source_O6LBas/cpan-Padre') called at /usr/local/share/perl/5.10.0/Shipwright/Source/Compressed.pm line 33 Shipwright::Source::Compressed::run('Shipwright::Source::Compressed=HASH(0xb7b065b8)', 'copy', 'HASH(0x98c4868)') called at /usr/local/share/perl/5.10.0/Shipwright/Source/CPAN.pm line 87 Shipwright::Source::CPAN::run('Shipwright::Source::CPAN=HASH(0xa121968)', 'copy', 'HASH(0x98c4868)') called at /usr/local/share/perl/5.10.0/Shipwright/Script/Import.pm line 157 Shipwright::Script::Import::run('Shipwright::Script::Import=HASH(0x982cf10)', 'cpan:Padre') called at /usr/local/share/perl/5.10.0/App/CLI/Command.pm line 53 App::CLI::Command::run_command('Shipwright::Script::Import=HASH(0x982cf10)', 'cpan:Padre') called at /usr/local/share/perl/5.10.0/App/CLI.pm line 79 App::CLI::dispatch('Shipwright::Script') called at /usr/local/bin/shipwright line 16 cannot remove path when cwd is /tmp/shipwright_source_O6LBas/cpan-Padre for /tmp/shipwright_source_O6LBas: at /usr/local/share/perl/5.10.0/File/Temp.pm line 902 $ ---------->8---------- We got a chance to narrow it down, adding one dependency at a time, and found that Test::ClassAPI (a package on Padre's dependency list) gives the error (that we're assuming is related to the previous one): ----------8<---------- $ shipwright create -r fs:sw-test created with success $ shipwright import -r fs:sw-test cpan:Test::ClassAPI CPAN related output will be at /tmp/shipwright_cpan.log Fetching with LWP: http://www.mirrorspace.org/cpan/authors/id/A/AD/ADAMK/Test-ClassAPI-1.06.tar.gz eval error: at /usr/local/share/perl/5.10.0/Shipwright/Source/Base.pm line 307 Shipwright::Source::Base::_follow('Shipwright::Source::Compressed=HASH(0xb7bed4a8)', '/tmp/shipwright_source_ghUhmA/cpan-Test-ClassAPI') called at /usr/local/share/perl/5.10.0/Shipwright/Source/Compressed.pm line 33 Shipwright::Source::Compressed::run('Shipwright::Source::Compressed=HASH(0xb7bed4a8)', 'copy', 'HASH(0xa28b800)') called at /usr/local/share/perl/5.10.0/Shipwright/Source/CPAN.pm line 87 Shipwright::Source::CPAN::run('Shipwright::Source::CPAN=HASH(0xaae8a90)', 'copy', 'HASH(0xa28b800)') called at /usr/local/share/perl/5.10.0/Shipwright/Script/Import.pm line 157 Shipwright::Script::Import::run('Shipwright::Script::Import=HASH(0xa1f3ef0)', 'cpan:Test::ClassAPI') called at /usr/local/share/perl/5.10.0/App/CLI/Command.pm line 53 App::CLI::Command::run_command('Shipwright::Script::Import=HASH(0xa1f3ef0)', 'cpan:Test::ClassAPI') called at /usr/local/share/perl/5.10.0/App/CLI.pm line 79 App::CLI::dispatch('Shipwright::Script') called at /usr/local/bin/shipwright line 16 cannot remove path when cwd is /tmp/shipwright_source_ghUhmA/cpan-Test-ClassAPI for /tmp/shipwright_source_ghUhmA: at /usr/local/share/perl/5.10.0/File/Temp.pm line 902 ---------->8---------- Taking a look at Test::ClassAPI's Makefile.PL, we found that it's very small and filled with Module::Install magic: ----------8<---------- use inc::Module::Install::DSL 0.91; all_from lib/Test/ClassAPI.pm requires_from lib/Test/ClassAPI.pm ---------->8---------- Sure enough, replacing it with an equivalent ExtUtils::MakeMaker version (setting the PREREQ_PM hash with appropriate dependencies), turned out ok: ----------8<---------- $ shipwright import -r fs:sw-test dir:Test-ClassAPI-1.06-with-replaced-makefile/ importing Test-ClassAPI imported with success ---------->8---------- Which point to the problem being that shipwright's magic isn't mixing very well with M:I's magic. It might be worth noticing that Padre's Makefile.PL also has some dense M:I stuff that might yield even different compatibility issues. Hope this helps. We're really looking to being able to pack Padre with Shipwright :) Thanks!
Hi Garu thanks for your feedback. I've added requires_from and test_requires_from supports for Module::Install, and now it works for Test::ClassAPI, at least ;) I'll release next version of Shipwright to include this, maybe next week. thanks again :)