On Thu, 15 Apr 2010, Barbie wrote: > On Thu, Apr 15, 2010 at 02:58:12PM -0700, Jan Dubois wrote: > > Yes, it certainly downloads prerequisites from the configured repositories. > > I was talking about downloading .ppmx files from some random website that > > you didn't configure first as a repository in the PPM client. The double- > > clicked file is not able to download additional prerequisites from that > > "random website" it came from itself. Think "private/internal repository > > of a bunch of interdependent modules". > > Got it. However, I was thinking the initial file (ppmx) would essentially > be a stand-alone download, the installer would then revert to the > predefined repos to download the prerequisites.
Yes, that's how it works. > In PPM's case there are only a few repos that try to keep up with CPAN, > so knowing where the original repo was may be significant. This is not important for modules on CPAN. It is important for modules whose prerequisites are *not* on CPAN and only exist in the same location as the original ppmx file. The way around this is probably to implement a protocol handler like ppm://random.example.com/repo/my-random-module.ppmx That way the browser would invoke the protocol handler with the full URL ppm install ppm://random.example.com/repo/my-random-module.ppmx instead of downloading the tarball via HTTP itself and then just passing a local filename to the installer: ppm install /tmp/downloads/my-random-module.ppmx Implementing a protocol handler for the major operating systems is somewhat more involved than just setting up a file extension/MIME type mapping though. > However, if we're downloading from CPAN, then it would be reasonable > to try and grab prereqs from a predefined set of CPAN mirrors. This all is not an issue if the "extension mechanism" only has to work for CPAN and can ignore the DarkPAN. One other issue that has been ignored so far is that neither the file extension nor the protocol scheme will work particular well if you have multiple Perl installations on your machine. You cannot direct the automatic download/install to a particular instance. Cheers, -Jan