Home
Reading
Searching
Subscribe
Sponsors
Statistics
Posting
Contact
Spam
Lists
Links
About
Hosting
Filtering
Features Download
Marketing
Archives
FAQ
Blog
 
Gmane
From: Mark Lawrence <nomad <at> null.net>
Subject: Bug#501688: dh-make-perl ignoring build_requires in Makefile.PL
Newsgroups: gmane.linux.debian.devel.bugs.general
Date: Saturday 22nd November 2008 10:56:57 UTC (over 7 years ago)
On Sun Oct 12, 2008 at 07:40:33PM -0500, Gunnar Wolf wrote:
> Mark Lawrence dijo [Thu, Oct 09, 2008 at 05:37:46PM +0200]:
> > dh-make-perl appears to either ignore, or doesn't recognise the
> > build_requires statement used in Module::Install type Makefile.PL
> > files.
> > 
> >     build_requires  'Test::More'            => 0;
> >     build_requires  'Test::Exception'       => 0;
> >     build_requires  'Test::Memory::Cycle'   => 0;
> >     build_requires  'Test::Pod'             => 0;
> > 
> > Consequently the Build-Depends: tag in debian/control is not correct.
> 
> Hi,
> 
> This is due to the fact that dependency information is acquired via
> Module::Depends::Intrusive, not by de-constructing Makefile.PL - And
> yes, this leaves the packages generated by dh-make-perl with complete
> information for the packages themselves, but sometimes incomplete
> information about their build-dependencies.
> 
> I think there are two ways out of this one: The first one is to add a
> simple parsing for "build_requires" on Makefile.PL (and, of course,
> noting it as build-dependencies, not as dependencies). The second one
> is to run via Module::Depends::Intrusive the tests as well.

Right, neither of those solutions sound great. However, while reading
the POD for Module::Depends::Intrusive I discovered Module::Depends
which parses META.yml to determine dependencies. It seems the Intrusive
version is something of a workaround until every module distribution
writes a META file.

dh-make-perl could use Module::Depends and then it has all the
information it needs. So I went and looked at the code and it turns out
dh-make-perl does use both Module::Depends, and
Module::Depends::Intrusive *and* YAML but doesn't seem to use the
information it obtains. From what I see the $meta hashref around line
155 should have a $meta->{build_depends} with the info needed.

> Anyway, probably the only feasible way is the first one... but I don't
> really like it - it will uglify (even!) more our code with repetition :-(

Ugly is the word for it! I guess I could think about writing up a patch
to fix this issue, but I know if I start down that path I'll want to
rewrite the whole thing. With comments even. Is that likely to be
accepted?

Mark.
-- 
Mark Lawrence
 
CD: 12ms