planet proxy/mirror ==> Re: [plt-dev] Fwd: [plt-scheme] Download links in PLaneT

From: Carl Eastlund (carl.eastlund at gmail.com)
Date: Tue Jan 19 21:43:21 EST 2010

On Tue, Jan 19, 2010 at 9:36 PM, YC <yinso.chen at gmail.com> wrote:
>
> On Tue, Jan 19, 2010 at 5:01 PM, Robby Findler <robby at eecs.northwestern.edu>
> wrote:
>>
>> I'm not sure I'm quite getting what you want, but is using 'planet
>> url' (via the planet commadline tool) sufficient?
>
>
> Sorry for being unclear.  It's not about 'planet url'.
>
> Basically the planet servlet appears to expect a parameter called "lang",
> which is set to the current version number.  And planet does not download a
> package if the version number does not match the package's criteria.
>
> For example - with v4.2.3, if I run 'planet url bzlib base.plt 1 3' I get
> the following url with a lang parameter
>
> http://planet.plt-scheme.org/servlets/planet-servlet.ss?lang=%224.2.3%22&name=%22base.plt%22&maj=1&min-lo=3&min-hi=%23f&path=%28%22bzlib%22%29
>
> And if I strip the lang param out, which gives us
>
> http://planet.plt-scheme.org/servlets/planet-servlet.ss?name=%22base.plt%22&maj=1&min-lo=3&min-hi=%23f&path=%28%22bzlib%22%29
>
> Passing the stripped url I get the following as a response instead of the
> package itself
>
> "Binding for lang had improper format"
>
> Lang criteria is great for ensuring mzscheme downloading a package that
> matches its version, but this does not work well for mirroring, which simply
> tries to download all packages without caring about the versions.
>
> I can currently think of the following ways to solve this issue - there
> probably are other ways I have not thought of, of course:
>
> Through planet server
>
> Enable "lang-less" download
>
> Either expose the directory structure where the plt files are held through
> the web server, or
> Modify the servlet so lang becomes optional
>
> Provide an API to query for minimum version necessary for each plt file
> (this still requires one additional round trip)
>
> Through my mirroring client
>
> Try all mzscheme version number to see which one works (brute force)
>>
>> The .plt files are all there, but they aren't in a place that is
>> served by the web server. I looked quickly into changing that; it
>> isn't trivial, but it is certainly doable if 'planet url' isn't
>> sufficient.
>
> I was hoping this can be a trivial change - wasn't trying to create work for
> you ;)  If it's too much effort I can go with the brute force method until
> you can look into it.
>
> Let me know if I need to provide additional clarifications.  Thanks,
> yc

Why would you need to try all version numbers?  The requirement is a
minimum.  Just use the highest available version number, and all
packages should be available.  As a starting point, you could just use
the version number from the proxy server itself; the only packages
this will miss are those too new to install on the server's platform.

--Carl


Posted on the dev mailing list.