in reply to Re^3: Strawberry CPAN.pm wrongly overrides INC in Makefile.PL
in thread Strawberry CPAN.pm wrongly overrides INC in Makefile.PL

Anonymous Monk said:
long-standing assumption by module authors that you can ask the user to provide you anything you like as a param to Makefile.PL

I have not made that assumption. I have gone out of my way to make my modules work without FAILs from cpan-testers, via cpan shell, from the command line and the module in question:

Between trying to avoid FAIL reports via cpan-testers, keeping up with non-compatible changes in ExtUtils::MakeMaker and supporting distributions that work differently (like strawberry perl) I'm guessing some module authors are living in a world of pain and certainly I seem to be spending more time tweaking things back and forth in the installations instead of adding all those requested features the users of the module want.

All I want in this case is to add a path to INC (without it my module will not even build - it is XS and needs DBI header files). It would appear for the current version of ExtUtils::MakeMaker and strawberry perl the only automatic thing I can do is delete INC from ARGV which seems a little drastic. The user on the other hand can either a) install manually b) edit makepl_arg in cpan c) edit Makefile after generation. For now I'm looking for INC in ARGV, outputting a message saying it will not work with advice on fixing it and, oh yes, remembering to exit 0 without creating a Makefile or cpan testers will issue a FAIL.

  • Comment on Re^4: Strawberry CPAN.pm wrongly overrides INC in Makefile.PL

Replies are listed 'Best First'.
Re^5: Strawberry CPAN.pm wrongly overrides INC in Makefile.PL
by adamk (Chaplain) on Dec 08, 2008 at 07:09 UTC
    The new version of Strawberry should resolve your issue

      Thank you

      I forgot to report back here but in the mean time I was given the following patch to DBD::ODBC which I know was also applied to a few other DBDs:

      package MY; use strict; use Config; sub constants { my $self = shift; require DBI::DBD; # The problem with stawberry perl is it sets INC on the command li +ne # and that overrides INC in this Makefile unless we set it here. my $old_constants = $self->SUPER::constants(); my $new_constants; foreach my $line ( split(/\n/, $old_constants) ) { if ( $line =~ /^INC = .*strawberry.*/ ) { print qq(Strawberry Perl found; adjusting the INC variable +;\n); $line = $line . q( -I) . DBI::DBD::dbd_dbi_arch_dir(); print qq(INC is now $line\n); } $new_constants .= $line . qq(\n); } return $new_constants; }

      Could you tell me in what version of strawberry perl I will be able to remove the above?

        The problem with stawberry perl is it sets INC on the command line

        If that's the only problem, then it's easily fixed. That INC setting is made when Strawberry is installed - so it's just a matter of undoing that setting after Strawberry has been installed.

        Elsewhere in this thread Anonymous Monk claimed that the removal of that setting caused problems. I don't see how that can be, and (s)he failed to provide details. I'm guessing that the latest Strawberry doesn't set the INC variable - and that's what adamk was alluding to. For any Strawberry build that *does* set that variable, I still fail to see any reason that it can't simply be removed. (Same goes for the 'LIB' environment variable.)

        Did you try doing that ?

        Cheers,
        Rob