Damyan Ivanov <d...@debian.org> writes: > Control: -1 tags confirmed > > -=| Slaven Rezic, 13.04.2012 21:02:05 +0200 |=- >> Package: dh-make-perl >> Version: 0.70-1 >> Severity: normal >> >> When trying to build Tk::Wizard with dh-make-perl using >> >> dh-make-perl --cpan=Tk::Wizard --build >> >> an obviously wrong dependecy was detected: >> >> - Win32::TieRegistry not found in any package >> CPAN contains it in Win32-TieRegistry >> substituting package name of libwin32-tieregistry-perl >> >> Problem is very probably that META.yml is used for >> dependency detection. This is wrong unless dynamic_config:0 is >> set in the META file. If dynamic_config is not defined or >> set to 1, then Makefile.PL or Build.PL must be run and >> the created Makefile or Build must be inspected for the >> correct dependencies (in newer Perls one can use the created >> MYMETA* files instead). > > Thanks for the explanation and sorry for replaying more than an year > later. > >> I can point you to the correct dependency detection code in >> CPAN.pm. > > That would be very helpful indeed. Hopefully there is a way to just > use some CPAN.pm-provided method to obtain this information. > >> Maybe using Module::Depends::Intrusive *always* would also do the >> right thing. > > Tried that, but for this package M:D:Intrusive returns an empty hash > :/
With Debian now shipping perl 5.14.x, we have now the easier option to fix the problem. Modern ExtUtils::MakeMaker and Module::Build write a "MYMETA.yml" (and MYMETA.json) file when executing "perl Makefile.PL" resp. "perl Build.PL", and this file contains all fields as META.yml, but dynamically evaluated. In the case of Tk::Wizard the requires field in MYMETA.yml looks like this: requires: Carp: 0 Cwd: 0 ExtUtils::testlib: 0 File::Copy: 0 File::Path: 0 File::Spec: 0 FileHandle: 0 IO::Handle: 0 LWP::UserAgent: 0 Scalar::Util: 0 Test::More: 0 Tk: 0 Tk::After: 0 Tk::DialogBox: 0 Tk::DirTree: 0 Tk::ErrorDialog: 0 Tk::Frame: 0 Tk::LabFrame: 0 Tk::MainWindow: 0 Tk::ProgressBar: 0 Tk::ROText: 0 That is, the Win32* modules are gone. So probably the fix is: run Makefile.PL/Build.PL, and if there was a MYMETA.yml file written, use this, else fallback to META.yml (the fallback probably should never happen, so is worth a warning). Regards, Slaven -- Slaven Rezic - slaven <at> rezic <dot> de BBBike - route planner for cyclists in Berlin WWW version: http://www.bbbike.de Perl/Tk version for Unix and Windows: http://bbbike.sourceforge.net -- To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org