On Tue, Nov 26, 2002 at 01:37:12PM -0800, Brian Ingerson wrote:
> I had forgot that Search goes through the entire tarball looking for .pm
> files. EU::MakeMaker doesn't do this. It only uses modules in ./ lib/ or
> contiguous subdirectories containing a Makefile.PL. I found this out when I
> tried to hide a sample Math::Simple in the Inline dist. It doesn't get
> installed, but it gets (much to my chagrin) indexed.
> 
> It would be nice to prevent this.

I disagree. EU::MM can be told to look for module files anywhere. As search
does not have this infomation. the correct thing todo will be to scan
the whole tree.

> Well I am trying to stick everything sneaky under the ./CPAN/ directory.
> Since that directory must be there for CPAN::MakeMaker to work anyway.

Why ? I think assuming . in the path will find you module is a bad
assumption. What if some sysadmon does install CPAN::MM, then when
someone tries todo a private install it will always get the installed
copy, not the one in the distribution.

Also, why should only module be treated special ? It would be much better
to have one directory designated as a directory to include files
only needed for installation. It would only require a

  use lib 'privlib';

at the top of the MakeFile.PL and you can then be sure that modules in the
dist will be used in preference over those installed and it also gives a standard
place for other people to place similar modules.

> It's interesting that I couldn't have used the module name
> CPAN_MakeMaker.pm because it would have been picked up for installation;
> but since MakeMaker.pm is under ./CPAN/ , EU::MM ignores it. (Search
> should too :)

MM ignores it because of info you have not placed in the MakeFile.PL,
search does not know any of that.

> As you can see, bundle tarballs can go anywhere. This probably won't confuse
> Search, since they are tarred up. The bundle_module stuff goes under CPAN/. I
> would suggest ignoring ./CPAN/ for modules. (Does anyone use ./CPAN/?) The
> Test::More stuff could also go under ./CPAN/ and I could adjust the Makefile
> to put ./CPAN/ in the @INC path.

CPAN may be the name for the shared directory, but I would suggest that
the CPAN::MM module be copied to CPAN/CPAN/MakeMake.pm and have use lib 'CPAN'
into the Makefile.PL and no depend on .

Graham.

> The upshot would (could) be that CPAN::MakeMaker reserves ./CPAN for itself.
> It should be easy to detect if the Author was trying to use it for anything
> else, and give a fair warning.
> 
> Cheers, Brian

Reply via email to