pkgsrc-Bugs archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: pkg/52810: devel-p5-Log-Any PLIST issue



Hello Hauke,
unfortunately I still have no idea what's going on and I was unable
to reproduce that but I will try to share some possible ways to
debug that to hopefully find what's the problem!

Before proceeding...
Does the `.packlist' mess ups only happen with devel/p5-Log-Any or did it
happened also for other packages?

IIUC the installation of files in the DESTDIR and generation of
`.packlist' are generated by install() function in ExtUtils::Install
(this is for all Perl packages with PERL5_MODULE_TYPE `Module::Install'
and `Module::Install::Bundled').

And, in the generated ${WRKSRC}/Makefile, the Perl one-liner that do
that is the MOD_INSTALL line.

Here I will share just the relevant make incantations and Perl
debugger commands to hopefully restrict the scope of the possible
locations where the problem can be.

 % cd pkgsrc/devel/p5-Log-Any
 % make
 [...]
 [... we add the `-d' flag so we can debug the install() function ...]
 [... of ExtUtils::Install.                                       ...]
 % sed -i 's/MOD_INSTALL = $(ABSPERLRUN)/MOD_INSTALL = $(ABSPERLRUN) -d/' `make show-var VARNAME=WRKSRC`/Makefile
 % make do-install
 [...]
 [... Puf! We're in the Perl Debugger now! For a complete ...]
 [... typescript please see at the end of the email       ...]
 [...]
 main::(-e:1):   install([ from_to => {@ARGV}, verbose => '0', uninstall_shadows => '0', dir_mode => '755' ]);
   DB<1> s
 [... we have stepped in in the install() function ...]
   DB<2> b 838
   DB<3> c
   DB<3> n
   DB<3> n
   DB<3> n
   DB<3> n
   DB<3> x $packlist
 0  ExtUtils::Packlist=HASH(0x7c97ff14a0a8)
    '/tmp/pkgsrc/devel/p5-Log-Any/work/.destdir/usr/pkg/lib/perl5/vendor_perl/5.26.0/Log/.gitignore' => 1
    '/tmp/pkgsrc/devel/p5-Log-Any/work/.destdir/usr/pkg/lib/perl5/vendor_perl/5.26.0/Log/Any.pm' => 1
    '/tmp/pkgsrc/devel/p5-Log-Any/work/.destdir/usr/pkg/lib/perl5/vendor_perl/5.26.0/Log/Any/Adapter.pm' => 1
 [...]
    '/tmp/pkgsrc/devel/p5-Log-Any/work/.destdir/usr/pkg/lib/perl5/vendor_perl/man/man3/Log::Any::Proxy::Null.3' => 1
    '/tmp/pkgsrc/devel/p5-Log-Any/work/.destdir/usr/pkg/lib/perl5/vendor_perl/man/man3/Log::Any::Proxy::Test.3' => 1
    '/tmp/pkgsrc/devel/p5-Log-Any/work/.destdir/usr/pkg/lib/perl5/vendor_perl/man/man3/Log::Any::Test.3' => 1
   DB<4> q
 [... the normal execution of the Perl one-liner will continue ...]

I think that $packlist, that is used to populate the `.packlist' file,
will be already messed up. I'm curious about the following:

 - Can you see the undesired lines correspond to real files in
   ${WRKSRC}/blib ?
 - When you break at line 838, does the undesidered lines present in
   ${DESTDIR} ?

If $packlist is already messed up then I hope that the following
breakpoint and `x' will help to spot what's going on:

   DB<1> b 789
   DB<2> c
   DB<2> x @$found
   DB<3> c
   DB<3> x @$found
   [... and so on ...]

This should print every file that's getting installed in ${DESTDIR} and
you will see that ${DESTDIR} will be populated.

Unfortunately I'm pretty sure that I can miss a lot of possible stuffs.
However, Hauke, feel free to contact me off-list and I will try to further
help in debugging and hopefully fixing this problem!


Thanks for the attention!


And, here, as promised a complete debug typescript that will show both
parts described above:

 % cd pkgsrc/devel/p5-Log-Any
 % make
 [...]
 % sed -i 's/MOD_INSTALL = $(ABSPERLRUN)/MOD_INSTALL = $(ABSPERLRUN) -d/' `make show-var VARNAME=WRKSRC`/Makefile
 % make do-install
 [...]
 Loading DB routines from perl5db.pl version 1.51
 Editor support available.
 
 Enter h or 'h h' for help, or 'man perldebug' for more help.
 
 main::(-e:1):   install([ from_to => {@ARGV}, verbose => '0', uninstall_shadows => '0', dir_mode => '755' ]);
   DB<1> s
 ExtUtils::Install::install(/usr/pkg/lib/perl5/5.26.0/ExtUtils/Install.pm:672):
 672:        my($from_to,$verbose,$dry_run,$uninstall_shadows,$skip,$always_copy,$result) = @_;
   DB<1> b 789
   DB<2> c
 ExtUtils::Install::install(/usr/pkg/lib/perl5/5.26.0/ExtUtils/Install.pm:789):
 789:            my ($diff, $ffd, $origfile, $mode, $size, $atime, $mtime,
 790:                $targetdir, $targetfile, $sourcedir, $sourcefile)= @$found;
   DB<2> x @$found
 0  1
 1  './Log'
 2  '.gitignore'
 3  33060
 4  13
 5  1513330720
 6  1511974597
 7  '/tmp/pkgsrc/devel/p5-Log-Any/work/.destdir/usr/pkg/lib/perl5/vendor_perl/5.26.0/Log'
 8  '/tmp/pkgsrc/devel/p5-Log-Any/work/.destdir/usr/pkg/lib/perl5/vendor_perl/5.26.0/Log/.gitignore'
 9  'blib/lib/Log'
 10  'blib/lib/Log/.gitignore'
   DB<3> c
 Installing /tmp/pkgsrc/devel/p5-Log-Any/work/.destdir/usr/pkg/lib/perl5/vendor_perl/5.26.0/Log/.gitignore
 ExtUtils::Install::install(/usr/pkg/lib/perl5/5.26.0/ExtUtils/Install.pm:789):
 789:            my ($diff, $ffd, $origfile, $mode, $size, $atime, $mtime,
 790:                $targetdir, $targetfile, $sourcedir, $sourcefile)= @$found;
   DB<3> x @$found
 0  1
 1  './Log'
 2  'Any.pm'
 3  33060
 4  15484
 5  1513330720
 6  1511974597
 7  '/tmp/pkgsrc/devel/p5-Log-Any/work/.destdir/usr/pkg/lib/perl5/vendor_perl/5.26.0/Log'
 8  '/tmp/pkgsrc/devel/p5-Log-Any/work/.destdir/usr/pkg/lib/perl5/vendor_perl/5.26.0/Log/Any.pm'
 9  'blib/lib/Log'
 10  'blib/lib/Log/Any.pm'
   DB<4> b 838
   DB<5> B 789
   DB<6> c
 Installing /tmp/pkgsrc/devel/p5-Log-Any/work/.destdir/usr/pkg/lib/perl5/vendor_perl/5.26.0/Log/Any.pm
 Installing /tmp/pkgsrc/devel/p5-Log-Any/work/.destdir/usr/pkg/lib/perl5/vendor_perl/5.26.0/Log/Any/Manager.pm
 [...]
 Installing /tmp/pkgsrc/devel/p5-Log-Any/work/.destdir/usr/pkg/lib/perl5/vendor_perl/man/man3/Log::Any::Proxy::Test.3
 Installing /tmp/pkgsrc/devel/p5-Log-Any/work/.destdir/usr/pkg/lib/perl5/vendor_perl/man/man3/Log::Any::Test.3
 ExtUtils::Install::install(/usr/pkg/lib/perl5/5.26.0/ExtUtils/Install.pm:838):
 838:        if ($pack{'write'}) {
   DB<6> n
 ExtUtils::Install::install(/usr/pkg/lib/perl5/5.26.0/ExtUtils/Install.pm:839):
 839:            $dir = install_rooted_dir(dirname($pack{'write'}));
   DB<6> n
 ExtUtils::Install::install(/usr/pkg/lib/perl5/5.26.0/ExtUtils/Install.pm:840):
 840:            _mkpath( $dir, 0, 0755, $verbose, $dry_run );
   DB<6> n
 ExtUtils::Install::install(/usr/pkg/lib/perl5/5.26.0/ExtUtils/Install.pm:841):
 841:            print "Writing $pack{'write'}\n" if $verbose;
   DB<6> n
 ExtUtils::Install::install(/usr/pkg/lib/perl5/5.26.0/ExtUtils/Install.pm:842):
 842:            $packlist->write(install_rooted_file($pack{'write'})) unless $dry_run;
   DB<6> x $packlist
 0  ExtUtils::Packlist=HASH(0x7c97ff14a0a8)
    '/tmp/pkgsrc/devel/p5-Log-Any/work/.destdir/usr/pkg/lib/perl5/vendor_perl/5.26.0/Log/.gitignore' => 1
    '/tmp/pkgsrc/devel/p5-Log-Any/work/.destdir/usr/pkg/lib/perl5/vendor_perl/5.26.0/Log/Any.pm' => 1
    '/tmp/pkgsrc/devel/p5-Log-Any/work/.destdir/usr/pkg/lib/perl5/vendor_perl/5.26.0/Log/Any/Adapter.pm' => 1
 [...]
    '/tmp/pkgsrc/devel/p5-Log-Any/work/.destdir/usr/pkg/lib/perl5/vendor_perl/man/man3/Log::Any::Proxy::Null.3' => 1
    '/tmp/pkgsrc/devel/p5-Log-Any/work/.destdir/usr/pkg/lib/perl5/vendor_perl/man/man3/Log::Any::Proxy::Test.3' => 1
    '/tmp/pkgsrc/devel/p5-Log-Any/work/.destdir/usr/pkg/lib/perl5/vendor_perl/man/man3/Log::Any::Test.3' => 1
   DB<7> q


(As a side note, to have something similar to `sh -x'/`set -x' of sh(1)
to quickly glance of interesting part of a Perl script this perl
incantation will do the trick:

 % env PERLDB_OPTS="NonStop=1 AutoTrace=1" perl -d

)


Home | Main Index | Thread Index | Old Index