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

Reply via email to