diff -Nru libapp-fatpacker-perl-0.010005/Changes libapp-fatpacker-perl-0.010007/Changes --- libapp-fatpacker-perl-0.010005/Changes 2015-12-14 02:10:05.000000000 +0000 +++ libapp-fatpacker-perl-0.010007/Changes 2017-01-22 13:14:50.000000000 +0000 @@ -1,5 +1,13 @@ Revision history for App-FatPacker +0.010007 - 2017-01-22 + - don't fail packlist finding if one module fails to load + - don't fail tracing w/undef INC values due to failed optional module load + +0.010_006 - 2017-01-20 + - detect and handle packing from within inc dirs w/version part + - fix tests to no longer rely on . being in @INC + 0.010005 - 2015-12-14 - fix fatpacked code to work properly on perl 5.6 in all cases - removed x_static_install metadata (RT#110299) diff -Nru libapp-fatpacker-perl-0.010005/debian/changelog libapp-fatpacker-perl-0.010007/debian/changelog --- libapp-fatpacker-perl-0.010005/debian/changelog 2015-12-15 18:44:48.000000000 +0000 +++ libapp-fatpacker-perl-0.010007/debian/changelog 2017-01-26 00:43:25.000000000 +0000 @@ -1,3 +1,19 @@ +libapp-fatpacker-perl (0.010007-1) unstable; urgency=medium + + * Team upload. + + [ Salvatore Bonaccorso ] + * debian/control: Use HTTPS transport protocol for Vcs-Git URI + + [ gregor herrmann ] + * debian/copyright: change Copyright-Format 1.0 URL to HTTPS. + + [ Nick Morrott ] + * Import upstream version 0.010007 + * debian/control: declare compliance with Debian Policy 3.9.8 + + -- Nick Morrott Thu, 26 Jan 2017 00:43:25 +0000 + libapp-fatpacker-perl (0.010005-1) unstable; urgency=medium * Import upstream version 0.010005. diff -Nru libapp-fatpacker-perl-0.010005/debian/control libapp-fatpacker-perl-0.010007/debian/control --- libapp-fatpacker-perl-0.010005/debian/control 2015-12-15 18:44:48.000000000 +0000 +++ libapp-fatpacker-perl-0.010007/debian/control 2017-01-26 00:43:25.000000000 +0000 @@ -5,9 +5,9 @@ Uploaders: gregor herrmann Build-Depends: debhelper (>= 9) Build-Depends-Indep: perl -Standards-Version: 3.9.6 +Standards-Version: 3.9.8 Vcs-Browser: https://anonscm.debian.org/cgit/pkg-perl/packages/libapp-fatpacker-perl.git -Vcs-Git: git://anonscm.debian.org/pkg-perl/packages/libapp-fatpacker-perl.git +Vcs-Git: https://anonscm.debian.org/git/pkg-perl/packages/libapp-fatpacker-perl.git Testsuite: autopkgtest-pkg-perl Homepage: https://metacpan.org/release/App-FatPacker diff -Nru libapp-fatpacker-perl-0.010005/debian/copyright libapp-fatpacker-perl-0.010007/debian/copyright --- libapp-fatpacker-perl-0.010005/debian/copyright 2015-12-15 18:44:48.000000000 +0000 +++ libapp-fatpacker-perl-0.010007/debian/copyright 2017-01-26 00:43:25.000000000 +0000 @@ -1,4 +1,4 @@ -Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ +Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ Source: https://metacpan.org/release/App-FatPacker Upstream-Contact: Karen Etheridge Upstream-Name: App-FatPacker diff -Nru libapp-fatpacker-perl-0.010005/lib/App/FatPacker/Trace.pm libapp-fatpacker-perl-0.010007/lib/App/FatPacker/Trace.pm --- libapp-fatpacker-perl-0.010005/lib/App/FatPacker/Trace.pm 2015-12-13 05:52:36.000000000 +0000 +++ libapp-fatpacker-perl-0.010007/lib/App/FatPacker/Trace.pm 2017-01-22 12:55:55.000000000 +0000 @@ -30,7 +30,7 @@ for my $inc (keys %INC) { next if exists $initial_inc{$inc}; - next unless $INC{$inc} =~ /\Q${inc}\E\Z/; + next unless defined($INC{$inc}) and $INC{$inc} =~ /\Q${inc}\E\Z/; print $trace "$inc\n"; } } diff -Nru libapp-fatpacker-perl-0.010005/lib/App/FatPacker.pm libapp-fatpacker-perl-0.010007/lib/App/FatPacker.pm --- libapp-fatpacker-perl-0.010005/lib/App/FatPacker.pm 2015-12-14 02:03:22.000000000 +0000 +++ libapp-fatpacker-perl-0.010007/lib/App/FatPacker.pm 2017-01-22 13:14:19.000000000 +0000 @@ -14,7 +14,7 @@ use File::Path qw(mkpath rmtree); use B qw(perlstring); -our $VERSION = '0.010005'; # 0.10.5 +our $VERSION = '0.010007'; # 0.10.7 $VERSION = eval $VERSION; @@ -142,11 +142,16 @@ sub packlists_containing { my ($self, $targets) = @_; - my @targets = @$targets; + my @targets; { local @INC = ('lib', @INC); - foreach my $t (@targets) { - require $t; + foreach my $t (@$targets) { + unless (eval { require $t; 1}) { + warn "Failed to load ${t}: $@\n" + ."Make sure you're not missing a packlist as a result\n"; + next; + } + push @targets, $t; } } my @search = grep -d $_, map catdir($_, 'auto'), @INC; @@ -178,8 +183,11 @@ my $pack_base; PART: foreach my $p (0 .. $#dir_parts) { if ($dir_parts[$p] eq 'auto') { - # $p-2 since it's /$Config{archname}/auto - $pack_base = catpath $vol, catdir @dir_parts[0..$p-2]; + # $p-2 normally since it's /$Config{archname}/auto but + # if the last bit is a number it's $Config{archname}/$version/auto + # so use $p-3 in that case + my $version_lib = 0+!!($dir_parts[$p-1] =~ /^[0-9.]+$/); + $pack_base = catpath $vol, catdir @dir_parts[0..$p-(2+$version_lib)]; last PART; } } diff -Nru libapp-fatpacker-perl-0.010005/MANIFEST libapp-fatpacker-perl-0.010007/MANIFEST --- libapp-fatpacker-perl-0.010005/MANIFEST 2015-12-14 02:10:22.000000000 +0000 +++ libapp-fatpacker-perl-0.010007/MANIFEST 2017-01-22 13:15:02.000000000 +0000 @@ -9,12 +9,12 @@ t/line.t t/line/lib/line/a.pm t/line/line-test.pl -t/mod/a.pm -t/mod/b.pm -t/mod/c.pm -t/mod/cond.pm -t/mod/d.pl -t/mod/d.pm +t/mod/ModuleA.pm +t/mod/ModuleB.pm +t/mod/ModuleC.pm +t/mod/ModuleCond.pm +t/mod/ModuleD.pl +t/mod/ModuleD.pm t/pack.t t/trace.t META.yml Module YAML meta-data (added by MakeMaker) diff -Nru libapp-fatpacker-perl-0.010005/META.json libapp-fatpacker-perl-0.010007/META.json --- libapp-fatpacker-perl-0.010005/META.json 2015-12-14 02:10:22.000000000 +0000 +++ libapp-fatpacker-perl-0.010007/META.json 2017-01-22 13:15:02.000000000 +0000 @@ -4,7 +4,7 @@ "mst - Matt S. Trout (cpan:MSTROUT) " ], "dynamic_config" : 0, - "generated_by" : "ExtUtils::MakeMaker version 7.1103, CPAN::Meta::Converter version 2.150005", + "generated_by" : "ExtUtils::MakeMaker version 7.2, CPAN::Meta::Converter version 2.150005", "license" : [ "perl_5" ], @@ -64,6 +64,6 @@ "web" : "http://git.shadowcat.co.uk/gitweb/gitweb.cgi?p=p5sagit/App-FatPacker.git" } }, - "version" : "0.010005", + "version" : "0.010007", "x_serialization_backend" : "JSON::PP version 2.27300" } diff -Nru libapp-fatpacker-perl-0.010005/META.yml libapp-fatpacker-perl-0.010007/META.yml --- libapp-fatpacker-perl-0.010005/META.yml 2015-12-14 02:10:22.000000000 +0000 +++ libapp-fatpacker-perl-0.010007/META.yml 2017-01-22 13:15:02.000000000 +0000 @@ -11,7 +11,7 @@ configure_requires: ExtUtils::MakeMaker: '0' dynamic_config: 0 -generated_by: 'ExtUtils::MakeMaker version 7.1103, CPAN::Meta::Converter version 2.150005' +generated_by: 'ExtUtils::MakeMaker version 7.2, CPAN::Meta::Converter version 2.150005' license: perl meta-spec: url: http://module-build.sourceforge.net/META-spec-v1.4.html @@ -34,5 +34,5 @@ resources: bugtracker: https://rt.cpan.org/Public/Dist/Display.html?Name=App-FatPacker repository: git://git.shadowcat.co.uk/p5sagit/App-FatPacker.git -version: '0.010005' -x_serialization_backend: 'CPAN::Meta::YAML version 0.017' +version: '0.010007' +x_serialization_backend: 'CPAN::Meta::YAML version 0.012' diff -Nru libapp-fatpacker-perl-0.010005/t/mod/a.pm libapp-fatpacker-perl-0.010007/t/mod/a.pm --- libapp-fatpacker-perl-0.010005/t/mod/a.pm 2015-03-12 00:25:50.000000000 +0000 +++ libapp-fatpacker-perl-0.010007/t/mod/a.pm 1970-01-01 00:00:00.000000000 +0000 @@ -1,6 +0,0 @@ -package t::mod::a; -use t::mod::b; - -$foo = "bar"; - -1; diff -Nru libapp-fatpacker-perl-0.010005/t/mod/b.pm libapp-fatpacker-perl-0.010007/t/mod/b.pm --- libapp-fatpacker-perl-0.010005/t/mod/b.pm 2015-03-12 00:25:50.000000000 +0000 +++ libapp-fatpacker-perl-0.010007/t/mod/b.pm 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ -package t::mod::b; -use t::mod::c; -1; diff -Nru libapp-fatpacker-perl-0.010005/t/mod/cond.pm libapp-fatpacker-perl-0.010007/t/mod/cond.pm --- libapp-fatpacker-perl-0.010005/t/mod/cond.pm 2015-03-12 00:25:50.000000000 +0000 +++ libapp-fatpacker-perl-0.010007/t/mod/cond.pm 1970-01-01 00:00:00.000000000 +0000 @@ -1,3 +0,0 @@ -package t::mod::cond; -eval { require t::mod::nothere }; -1; diff -Nru libapp-fatpacker-perl-0.010005/t/mod/c.pm libapp-fatpacker-perl-0.010007/t/mod/c.pm --- libapp-fatpacker-perl-0.010005/t/mod/c.pm 2015-12-13 05:52:36.000000000 +0000 +++ libapp-fatpacker-perl-0.010007/t/mod/c.pm 1970-01-01 00:00:00.000000000 +0000 @@ -1,9 +0,0 @@ -package t::mod::c; - -sub xyz { - shift() - ? 666 - : 999 -} - -1; diff -Nru libapp-fatpacker-perl-0.010005/t/mod/d.pl libapp-fatpacker-perl-0.010007/t/mod/d.pl --- libapp-fatpacker-perl-0.010005/t/mod/d.pl 2015-12-13 05:52:36.000000000 +0000 +++ libapp-fatpacker-perl-0.010007/t/mod/d.pl 1970-01-01 00:00:00.000000000 +0000 @@ -1 +0,0 @@ -use t::mod::d; diff -Nru libapp-fatpacker-perl-0.010005/t/mod/d.pm libapp-fatpacker-perl-0.010007/t/mod/d.pm --- libapp-fatpacker-perl-0.010005/t/mod/d.pm 2015-12-13 05:52:36.000000000 +0000 +++ libapp-fatpacker-perl-0.010007/t/mod/d.pm 1970-01-01 00:00:00.000000000 +0000 @@ -1,4 +0,0 @@ -package t::mod::d; -$INC{"t/mod/foreign.pm"} = __FILE__; -1; - diff -Nru libapp-fatpacker-perl-0.010005/t/mod/ModuleA.pm libapp-fatpacker-perl-0.010007/t/mod/ModuleA.pm --- libapp-fatpacker-perl-0.010005/t/mod/ModuleA.pm 1970-01-01 00:00:00.000000000 +0000 +++ libapp-fatpacker-perl-0.010007/t/mod/ModuleA.pm 2017-01-18 13:45:47.000000000 +0000 @@ -0,0 +1,6 @@ +package ModuleA; +use ModuleB; + +$foo = "bar"; + +1; diff -Nru libapp-fatpacker-perl-0.010005/t/mod/ModuleB.pm libapp-fatpacker-perl-0.010007/t/mod/ModuleB.pm --- libapp-fatpacker-perl-0.010005/t/mod/ModuleB.pm 1970-01-01 00:00:00.000000000 +0000 +++ libapp-fatpacker-perl-0.010007/t/mod/ModuleB.pm 2017-01-18 13:45:47.000000000 +0000 @@ -0,0 +1,3 @@ +package ModuleB; +use ModuleC; +1; diff -Nru libapp-fatpacker-perl-0.010005/t/mod/ModuleCond.pm libapp-fatpacker-perl-0.010007/t/mod/ModuleCond.pm --- libapp-fatpacker-perl-0.010005/t/mod/ModuleCond.pm 1970-01-01 00:00:00.000000000 +0000 +++ libapp-fatpacker-perl-0.010007/t/mod/ModuleCond.pm 2017-01-18 13:45:47.000000000 +0000 @@ -0,0 +1,3 @@ +package ModuleCond; +eval { require ModuleNothere }; +1; diff -Nru libapp-fatpacker-perl-0.010005/t/mod/ModuleC.pm libapp-fatpacker-perl-0.010007/t/mod/ModuleC.pm --- libapp-fatpacker-perl-0.010005/t/mod/ModuleC.pm 1970-01-01 00:00:00.000000000 +0000 +++ libapp-fatpacker-perl-0.010007/t/mod/ModuleC.pm 2017-01-18 13:45:47.000000000 +0000 @@ -0,0 +1,9 @@ +package ModuleC; + +sub xyz { + shift() + ? 666 + : 999 +} + +1; diff -Nru libapp-fatpacker-perl-0.010005/t/mod/ModuleD.pl libapp-fatpacker-perl-0.010007/t/mod/ModuleD.pl --- libapp-fatpacker-perl-0.010005/t/mod/ModuleD.pl 1970-01-01 00:00:00.000000000 +0000 +++ libapp-fatpacker-perl-0.010007/t/mod/ModuleD.pl 2017-01-18 13:45:47.000000000 +0000 @@ -0,0 +1 @@ +use ModuleD; diff -Nru libapp-fatpacker-perl-0.010005/t/mod/ModuleD.pm libapp-fatpacker-perl-0.010007/t/mod/ModuleD.pm --- libapp-fatpacker-perl-0.010005/t/mod/ModuleD.pm 1970-01-01 00:00:00.000000000 +0000 +++ libapp-fatpacker-perl-0.010007/t/mod/ModuleD.pm 2017-01-18 13:45:47.000000000 +0000 @@ -0,0 +1,4 @@ +package ModuleD; +$INC{"ModuleForeign.pm"} = __FILE__; +1; + diff -Nru libapp-fatpacker-perl-0.010005/t/pack.t libapp-fatpacker-perl-0.010007/t/pack.t --- libapp-fatpacker-perl-0.010005/t/pack.t 2015-12-14 02:00:23.000000000 +0000 +++ libapp-fatpacker-perl-0.010007/t/pack.t 2017-01-18 13:45:47.000000000 +0000 @@ -14,10 +14,10 @@ my $cwd = getcwd; my $tempdir = tempdir('fatpacker-XXXXX', DIR => "$cwd/t", $keep ? (CLEANUP => 0) : (CLEANUP => 1)); -mkpath([<$tempdir/{lib,fatlib}/t/mod>]); +mkpath([<$tempdir/{lib,fatlib}>]); -for() { - copy $_, "$tempdir/lib/$_" or die "copy failed: $!"; +for () { + copy $_, "$tempdir/lib/".basename($_) or die "copy failed: $!"; } chdir $tempdir; @@ -40,9 +40,9 @@ require $packed_file; { - require t::mod::a; + require ModuleA; no warnings 'once'; - ok $t::mod::a::foo eq 'bar', "packed script works"; + ok $ModuleA::foo eq 'bar', "packed script works"; } { @@ -53,11 +53,11 @@ my @files = sort $INC[0]->files; is_deeply( \@files, [ - 't/mod/a.pm', - 't/mod/b.pm', - 't/mod/c.pm', - 't/mod/cond.pm', - 't/mod/d.pm', + 'ModuleA.pm', + 'ModuleB.pm', + 'ModuleC.pm', + 'ModuleCond.pm', + 'ModuleD.pm', ], "\$INC[0]->files returned the files" ); } @@ -66,11 +66,11 @@ if (my $testwith = $ENV{'FATPACKER_TESTWITH'}) { for my $perl (split ' ', $testwith) { my $out = system $perl, '-e', - q{alarm 5; require $ARGV[0]; require t::mod::a; exit($t::mod::a::foo eq 'bar' ? 0 : 1)}, $temp_fh; + q{alarm 5; require $ARGV[0]; require ModuleA; exit($ModuleA::foo eq 'bar' ? 0 : 1)}, $temp_fh; ok !$out, "packed script works with $perl"; $out = system $perl, '-e', - q{alarm 5; require $ARGV[0]; exit( (sort $INC[0]->files)[0] eq 't/mod/a.pm' ? 0 : 1 )}, $temp_fh; + q{alarm 5; require $ARGV[0]; exit( (sort $INC[0]->files)[0] eq 'ModuleA.pm' ? 0 : 1 )}, $temp_fh; ok !$out, "\$INC[0]->files works with $perl"; } diff -Nru libapp-fatpacker-perl-0.010005/t/trace.t libapp-fatpacker-perl-0.010007/t/trace.t --- libapp-fatpacker-perl-0.010005/t/trace.t 2015-12-14 02:00:23.000000000 +0000 +++ libapp-fatpacker-perl-0.010007/t/trace.t 2017-01-18 13:45:47.000000000 +0000 @@ -2,20 +2,20 @@ use warnings FATAL => 'all'; use Test::More qw(no_plan); -test_trace("t/mod/a.pm" => ("t/mod/b.pm", "t/mod/c.pm")); -test_trace("t/mod/b.pm" => ("t/mod/c.pm")); -test_trace("t/mod/c.pm" => ()); -test_trace("t/mod/d.pl" => ("t/mod/d.pm")); +test_trace("t/mod/ModuleA.pm" => ("ModuleB.pm", "ModuleC.pm")); +test_trace("t/mod/ModuleB.pm" => ("ModuleC.pm")); +test_trace("t/mod/ModuleC.pm" => ()); +test_trace("t/mod/ModuleD.pl" => ("ModuleD.pm")); # Attempts to conditionally load a module that isn't present -test_trace("t/mod/cond.pm" => ()); +test_trace("t/mod/ModuleCond.pm" => ()); sub test_trace { my($file, @loaded) = @_; local $Test::Builder::Level = $Test::Builder::Level + 1; unlink "fatpacker.trace"; - system($^X, "-Mblib", "-MApp::FatPacker::Trace", $file); + system($^X, "-Mblib", '-It/mod', "-MApp::FatPacker::Trace", $file); open my $trace, "<", "fatpacker.trace"; my @traced = sort map { chomp; $_ } <$trace>; @@ -24,25 +24,3 @@ is_deeply \@traced, \@loaded, "All expected modules loaded for $file"; unlink "fatpacker.trace"; } - -test_trace("t/mod/a.pm" => ("t/mod/b.pm", "t/mod/c.pm")); - -sub test_trace_stderr { - my($file, @loaded) = @_; - local $Test::Builder::Level = $Test::Builder::Level + 1; - - system(join(' ', - $^X, "-Mblib", "-MApp::FatPacker::Trace", '--to-stderr', $file, - '>', 'fatpacker.trace', '2>&1')); - - open my $trace, "<", "fatpacker.trace"; - while(<$trace>) { - chomp; - my $load = $_; - @loaded = grep { $load ne $_ } @loaded; - } - - ok !@loaded, "All expected modules loaded for $file"; - unlink "fatpacker.trace"; -} -