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



The following reply was made to PR pkg/52810; it has been noted by GNATS.

From: Leonardo Taccari <leot%NetBSD.org@localhost>
To: gnats-bugs%NetBSD.org@localhost
Cc: pkgsrc-bugs%NetBSD.org@localhost
Subject: Re: pkg/52810: devel-p5-Log-Any PLIST issue
Date: Fri, 15 Dec 2017 12:35:36 +0100

 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 =3D $(ABSPERLRUN)/MOD_INSTALL =3D $(ABSPERLRUN) -=
 d/' `make show-var VARNAME=3DWRKSRC`/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 =3D> {@ARGV}, verbose =3D> '0', uninsta=
 ll_shadows =3D> '0', dir_mode =3D> '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=3DHASH(0x7c97ff14a0a8)
     '/tmp/pkgsrc/devel/p5-Log-Any/work/.destdir/usr/pkg/lib/perl5/vendor_p=
 erl/5.26.0/Log/.gitignore' =3D> 1
     '/tmp/pkgsrc/devel/p5-Log-Any/work/.destdir/usr/pkg/lib/perl5/vendor_p=
 erl/5.26.0/Log/Any.pm' =3D> 1
     '/tmp/pkgsrc/devel/p5-Log-Any/work/.destdir/usr/pkg/lib/perl5/vendor_p=
 erl/5.26.0/Log/Any/Adapter.pm' =3D> 1
  [...]
     '/tmp/pkgsrc/devel/p5-Log-Any/work/.destdir/usr/pkg/lib/perl5/vendor_p=
 erl/man/man3/Log::Any::Proxy::Null.3' =3D> 1
     '/tmp/pkgsrc/devel/p5-Log-Any/work/.destdir/usr/pkg/lib/perl5/vendor_p=
 erl/man/man3/Log::Any::Proxy::Test.3' =3D> 1
     '/tmp/pkgsrc/devel/p5-Log-Any/work/.destdir/usr/pkg/lib/perl5/vendor_p=
 erl/man/man3/Log::Any::Test.3' =3D> 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 =3D $(ABSPERLRUN)/MOD_INSTALL =3D $(ABSPERLRUN) -=
 d/' `make show-var VARNAME=3DWRKSRC`/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 =3D> {@ARGV}, verbose =3D> '0', uninsta=
 ll_shadows =3D> '0', dir_mode =3D> '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,$alway=
 s_copy,$result) =3D @_;
    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)=3D =
 @$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_p=
 erl/5.26.0/Log'
  8  '/tmp/pkgsrc/devel/p5-Log-Any/work/.destdir/usr/pkg/lib/perl5/vendor_p=
 erl/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/v=
 endor_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)=3D =
 @$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_p=
 erl/5.26.0/Log'
  8  '/tmp/pkgsrc/devel/p5-Log-Any/work/.destdir/usr/pkg/lib/perl5/vendor_p=
 erl/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/v=
 endor_perl/5.26.0/Log/Any.pm
  Installing /tmp/pkgsrc/devel/p5-Log-Any/work/.destdir/usr/pkg/lib/perl5/v=
 endor_perl/5.26.0/Log/Any/Manager.pm
  [...]
  Installing /tmp/pkgsrc/devel/p5-Log-Any/work/.destdir/usr/pkg/lib/perl5/v=
 endor_perl/man/man3/Log::Any::Proxy::Test.3
  Installing /tmp/pkgsrc/devel/p5-Log-Any/work/.destdir/usr/pkg/lib/perl5/v=
 endor_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 =3D 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'})) unl=
 ess $dry_run;
    DB<6> x $packlist
  0  ExtUtils::Packlist=3DHASH(0x7c97ff14a0a8)
     '/tmp/pkgsrc/devel/p5-Log-Any/work/.destdir/usr/pkg/lib/perl5/vendor_p=
 erl/5.26.0/Log/.gitignore' =3D> 1
     '/tmp/pkgsrc/devel/p5-Log-Any/work/.destdir/usr/pkg/lib/perl5/vendor_p=
 erl/5.26.0/Log/Any.pm' =3D> 1
     '/tmp/pkgsrc/devel/p5-Log-Any/work/.destdir/usr/pkg/lib/perl5/vendor_p=
 erl/5.26.0/Log/Any/Adapter.pm' =3D> 1
  [...]
     '/tmp/pkgsrc/devel/p5-Log-Any/work/.destdir/usr/pkg/lib/perl5/vendor_p=
 erl/man/man3/Log::Any::Proxy::Null.3' =3D> 1
     '/tmp/pkgsrc/devel/p5-Log-Any/work/.destdir/usr/pkg/lib/perl5/vendor_p=
 erl/man/man3/Log::Any::Proxy::Test.3' =3D> 1
     '/tmp/pkgsrc/devel/p5-Log-Any/work/.destdir/usr/pkg/lib/perl5/vendor_p=
 erl/man/man3/Log::Any::Test.3' =3D> 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=3D"NonStop=3D1 AutoTrace=3D1" perl -d
 
 )
 


Home | Main Index | Thread Index | Old Index