how to prevent rpmbuild from incorrectly discovering a Perl module (non)dependency
Fulko Hew
fulko.hew at gmail.com
Fri May 13 20:12:46 UTC 2011
On Fri, May 13, 2011 at 2:40 PM, Tim Mooney <Tim.Mooney at ndsu.edu> wrote:
> In regard to: how to prevent rpmbuild from incorrectly discovering a
> Perl...:
>
>
> What I have in one of my Perl programs something like:
>>
>> print <<EOF;
>> use Net::SNMP::AgentX qw(:types :pdus :errors :options);
>> EOF
>>
>> So my code 'emits' a line of text that contains a 'use' statement,
>> but it does not actually ever execute that 'use' statement,
>> therefore _my_ package is NOT dependent on that module.
>>
>
> Perl is incredibly challenging to parse correctly, which is why the
> dependency generator sometimes gets it wrong.
>
> The easiest thing to try would be to break your very small here-doc into
> pieces that the dependency detector won't notice. Something like
>
> print 'use ';
> print 'Net::SNMP::AgentX ';
> print 'qw(:types :pdus :errors :options);';
> print "\n";
>
> or
>
> print join(' ', 'use', 'Net::SNMP::AgentX',
> 'qw(:types :pdus :errors :options);'), "\n";
>
Thanks, I didn't think of that... I'll try it.
In the mean time, I added the following statement to my spec file:
Provides: perl(Net::SNMP::AgentX)
I know I'm lying, but it got around my issue.
As long as we're talking about the 'challenging to parse correctly issue:
I also have a case like:
return "" unless (eval "use GraphViz; 1");
And it _doesn't_ detect the 'use' inside of 'evals' so I have manually
added Requires: directives for those cases.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.rpm.org/pipermail/rpm-list/attachments/20110513/d9af3cea/attachment.html>
More information about the Rpm-list
mailing list