Skip Menu |

This queue is for tickets about the File-LinkDir CPAN distribution.

Report information
The Basics
Id: 77300
Status: open
Priority: 0/
Queue: File-LinkDir

People
Owner: mmusgrove [...] cpan.org
Requestors: ANDK [...] cpan.org
Cc:
AdminCc:

Bug Information
Severity: Normal
Broken in: 1.02
Fixed in: (no value)



Subject: Bareword "githubmeta" not allowed
Sample UNKNOWN report: http://www.cpantesters.org/cpan/report/88e8650a-a041-11e1-95fc-8760f4b14d39 The matrix shows only unknowns for recent bleadperls: http://matrix.cpantesters.org/?dist=File-LinkDir A bugfix in bleadperl is the reason that the bareword "githubmeta" in the Makefile.PL is now recognized as such. It's a little known fact that Module::Install exports strict mode to the caller. Related tickets: https://rt.cpan.org/Ticket/Dis play.html?id=76035 https://rt.cpan.org/Ticket/Dis play.html?id=76041 https://rt.cpan.org/Ticket/Dis play.html?id=75534 HTT&&Regards,
I've tried it with four separate installs of perl 5.15.9 and I cannot reproduce this problem. Do you have any additional information that might help? Running install for module 'File::LinkDir' Running make for M/MM/MMUSGROVE/File-LinkDir-1.02.tar.gz Fetching with HTTP::Tiny: http://mirror.team-cymru.org/CPAN/authors/id/M/MM/MMUSGROVE/File-LinkDir-1.02.tar.gz Fetching with HTTP::Tiny: http://mirror.team-cymru.org/CPAN/authors/id/M/MM/MMUSGROVE/CHECKSUMS Checksum for /home/mmusgrove/.cpan/sources/authors/id/M/MM/MMUSGROVE/File-LinkDir-1.02.tar.gz ok CPAN.pm: Building M/MM/MMUSGROVE/File-LinkDir-1.02.tar.gz Checking if your kit is complete... Looks good Writing Makefile for File::LinkDir Writing MYMETA.yml and MYMETA.json cp lib/File/LinkDir.pm blib/lib/File/LinkDir.pm cp bin/link-files blib/script/link-files /home/mmusgrove/perl5/perlbrew/perls/perl-5.15.9/bin/perl5.15.9 "-Iinc" -MExtUtils::MY -e 'MY->fixin(shift)' -- blib/script/link-files Manifying blib/man1/link-files.1 Manifying blib/man3/File::LinkDir.3 MMUSGROVE/File-LinkDir-1.02.tar.gz /usr/bin/make -- OK 'YAML' not installed, will not store persistent state Running make test PERL_DL_NONLAZY=1 /home/mmusgrove/perl5/perlbrew/perls/perl-5.15.9/bin/perl5.15.9 "-MExtUtils::Command::MM" "-e" "test_harness(0, 'inc', 'blib/lib', 'blib/arch')" t/*.t t/00-load.t ........... 1/1 # Testing File::LinkDir 1.02, Perl 5.015009, /home/mmusgrove/perl5/perlbrew/perls/perl-5.15.9/bin/perl5.15.9 t/00-load.t ........... ok t/01-object.t ......... ok t/02-symlinks.t ....... ok t/03-hardlinks.t ...... Can't create '/home/mmusgrove/.cpan/build/File-LinkDir-1.02-V1hPRN/t/tests/dest/a' as a hard link, skipping t/03-hardlinks.t ...... ok t/04-rec-symlinks.t ... ok t/05-rec-hardlinks.t .. ok t/06-ignore.t ......... ok t/07-add-ignore.t ..... ok t/boilerplate.t ....... skipped: Author tests not required for installation t/manifest.t .......... skipped: Author tests not required for installation t/pod-coverage.t ...... skipped: Author tests not required for installation t/pod.t ............... skipped: Author tests not required for installation All tests successful. Files=12, Tests=156, 1 wallclock secs ( 0.11 usr 0.03 sys + 0.37 cusr 0.05 csys = 0.56 CPU) Result: PASS MMUSGROVE/File-LinkDir-1.02.tar.gz /usr/bin/make test -- OK Running make install Installing /home/mmusgrove/perl5/perlbrew/perls/perl-5.15.9/lib/site_perl/5.15.9/File/LinkDir.pm Installing /home/mmusgrove/perl5/perlbrew/perls/perl-5.15.9/man/man1/link-files.1 Installing /home/mmusgrove/perl5/perlbrew/perls/perl-5.15.9/man/man3/File::LinkDir.3 Installing /home/mmusgrove/perl5/perlbrew/perls/perl-5.15.9/bin/link-files Appending installation info to /home/mmusgrove/perl5/perlbrew/perls/perl-5.15.9/lib/5.15.9/x86_64-linux/perllocal.pod MMUSGROVE/File-LinkDir-1.02.tar.gz /usr/bin/make install -- OK
On Sat May 19 02:30:08 2012, ANDK wrote: Show quoted text
> Sample UNKNOWN report: > > http://www.cpantesters.org/cpan/report/88e8650a-a041-11e1-95fc-8760f4b14d39 > > The matrix shows only unknowns for recent bleadperls: > > http://matrix.cpantesters.org/?dist=File-LinkDir > > A bugfix in bleadperl is the reason that the bareword "githubmeta" in > the Makefile.PL is now recognized as such. It's a little known fact that > Module::Install exports strict mode to the caller. > > Related tickets: https://rt.cpan.org/Ticket/Dis play.html?id=76035 > https://rt.cpan.org/Ticket/Dis play.html?id=76041 > https://rt.cpan.org/Ticket/Dis play.html?id=75534 > > HTT&&Regards,
Andreas, was there something wrong with your smoking setup? File-LinkDir-1.02 includes inc/Module/Install/GithubMeta.pm. Running Makefile.PL through Deparse gives me this, which shows that githubmeta is interpreted as a function call: use Config; sub BEGIN { unless ($Config{'d_link'} and $Config{'d_symlink'}) { print "1..0 # Skip: no link and/or symlink\n"; exit 0; } } use inc::Module::Install; use strict; name('File-LinkDir'); githubmeta(); all_from('lib/File/LinkDir.pm'); requires('File::Path', '2.07'); test_requires('Test::More', '0'); tests_recursive(); install_script('bin/link-files'); WriteAll(); Makefile.PL syntax OK I have a fresh 5.16.0-RC0 installation with no modules installed.
I can reproduce it with current bleadperl and several other recent bleadperls but I have also at least one recent bleadperl that works, so I confirm there is some module loading sequence bug involved. Here is my deparse output. % /home/src/perl/repoperls/installed-perls/perl/v5.16.0-181-g8465c88/165a/bin/perl -MO=Deparse Makefile.PL include /tmp/tmp.YqhH3dM3E9/File-LinkDir-1.02-KgJIoI/inc/Module/Install.pm Bareword "githubmeta" not allowed while "strict subs" in use at Makefile.PL line 13. Makefile.PL had compilation errors. use Config; sub BEGIN { unless ($Config{'d_link'} and $Config{'d_symlink'}) { print "1..0 # Skip: no link and/or symlink\n"; exit 0; } } use inc::Module::Install; use strict; name('File-LinkDir'); '???'; ; all_from('lib/File/LinkDir.pm'); requires('File::Path', '2.07'); test_requires('Test::More', '0'); tests_recursive(); install_script('bin/link-files'); WriteAll(); And guess what? Devel::TraceUse is broken in blead at the moment.
I now have a perl (v5.16.0-RC1-1-g7756a36) that can build Devel::TraceUse *and* exhibits the "githubmeta" bug. It's hilarious: running perl -d:TraceUse Makefile.PL produces 516 lines of output and after that the tree below ./inc/ is reduced to ./inc ./inc/Module ./inc/Module/Install.pm ./inc/.author Strace reports 21411 08:12:02.840513 lstat("GithubMeta.pm", {st_mode=S_IFREG|0644, st_size=1185, ...}) = 0 21411 08:12:02.840565 geteuid() = 1005 21411 08:12:02.840594 unlink("GithubMeta.pm") = 0 but I have yet to figure out where the code comes from that does so. I'll keep you posted.