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