On Thursday, October 17, 2002, at 11:21  PM, Sherm Pendley wrote:

On Thursday, October 17, 2002, at 09:11 AM, Puneet Kishor wrote:

 Anyway, I also found the following right at the top of the Makefile

	warn "NOTICE: This module requires libgd 2.0.1 or higher.\n";
	warn "        For earlier versions of libgd, use GD version 1.43.\n";

huh! so, cpan is not that idiot-proof.
Nor is it a mind reader. CPAN simply acts on dependencies that have been listed by module authors, no more, no less.

 Would have been nice if it had figured out that I had libgd 1.8.4
Yeah, that would be nice. But, that's not how CPAN works. It doesn't deduce or "figure out" anything at all - it reads the list of dependencies provided by the module author, and acts upon them. That works pretty well, when only Perl modules are involved - but it breaks down when external libraries are involved.

A major problem with external library dependencies is that each library has its own way of reporting its version. Some, such as libgnome, provide a config script - "gnome-config --version". Others, such as libxml, use different names to distinguish incompatible libraries - libxml vs. libxml2. Others provide a function in the library itself, that reports the version. Because the methods used to detect library versions aren't consistent, it cannot be done by the CPAN module - it has to be managed by individual module authors and built into module Makefiles.

(the latest stable version) and gotten the appropriate GD for me. Interestingly, libgd 2.0.1 is still beta, and yet, cpan insists on installing a beta-dependent software.
CPAN didn't "insist" on anything. It did exactly what you asked it to do - it attempted to install the latest version. Had you read the readme - something that CPAN makes very easy, by the way, all you need to do is enter "readme ModuleName" - you could have seen that the latest version is not what you wanted, without even having to download the full package.

With all due respect, I feel that your rant about CPAN is misguided. You seem to have a rather unrealistic idea of what CPAN does and how it does it.
You are correct. I did have a wrong idea about cpan's functioning and capabilities, and hence, my "rant" _was_ misguided. Yes, the Makefile.PL had confusing information... (btw, thanks for the tip on "readme")... readme GD provides info that is different from Makefile.PL (the latter mentions a seemingly non-existent GD-1.43)

...
On the other hand, even though you've chosen the wrong target for venting your frustration
...

I guess frustration is the right word. To date, except for MoveableType I have not had a single easy and successful configure,make,install experience.

For most things I don't even know why they happen the way they do. And yes, there is documentation for everything, but "they lied when they said it would be easy." Maybe I am a poster child for mac and *nix worlds colliding, and I shudder when I think of others trying to conquer this because I am actually fairly computer literate (well, someone pays me for programming, though, not for programming perl... that would not be a good deal for my employers...).

Anyway, apologies for the ranting... although, I must say, venting frustration in the ether of a mailing list is a lot better than shoving my head through my iBook's lcd panel.

;-)

Puneet.

Reply via email to