[Catalog-sig] Withdrawing PEP 262

Aaron Sterling AASterling@Hotpop.com
Tue, 15 Oct 2002 00:45:14 -0400


10/14/2002 5:21:00 PM, Chris Liechti <cliechti@gmx.net> wrote:

>no no...reason: firewalls. 

>sure that'd be cool, but that should be only allowed with signed packages and 
otherwise only
>with a BIG warning box...


Oh...Yeah...  Man the real world is a drag. Especially the security aspect of it. 

That being said, let me list some rough specifications for such a system(the sane one) 
and see if anyone agrees with any of them.


1) As Chris pointed out, the catalog should be divided into two levels, signed and 
unsigned.

2) The catalog(I propose calling it the Python Package Catalog, or PPC, at least for 
the purpose of this discussion) should be structured thusly. Three rfc822 fields: DATE, 
PPC-Signed, PPC-Unsigned. This divides the catalog into two subcatalogs. Each entry in 
a sub-catalog occupies one and only one line. This line takes the form <package name> 
<SPACE> <package infofile URL> <SPACE> <package website> <SPACE> <package summary>. The 
package name is the name of the package, the package infofile URL is the URL of the 
package infofile(described in 4), the package website is the packages' website. The 
package summary is an eighty charachter summary of the package. This is for use in the 
browser.

3) Access to the primary PPC at python.org should be kept to a minimum to conserve 
bandwidth. This can be facilitated by keeping a local copy of the PPC on each machine. 
This carries with the extra benefit of redundency. When it is time to download a 
package, the Local PPC(LPPC) is consulted. If the DATE field in the LPPC is expired a 
fresh copy is downloaded from python.org.

4) This is a hack I think. It would be preferable to simply have one universal format 
for all packages on all platforms, that not being the case, we need some means of 
redirecting general requests for a package into a concrete URL for that specific 
platform. This can be accomplished with infofiles. Infofiles would be plaintext, either 
ASCII or LATIN-1. They would essentially be a catalog of the different distributions of 
the package for different platforms. Each platform for which that package is supported 
would have one and only one line given to it. This line would take the form <platform> 
<SPACE> <platform specific URL>. The platform is simply sys.platform so that the code 
is guaranteed to know what it is. The plaform specific URL is the url of the package 
for that specific platform.

5) In addition to the LPPC, there should be the IPPC (Installed PPC), this is almost 
the same format as the PPC, but contains only the subset of the PPC that is installed 
on the local system. The change in format is the substitution of a reference to the 
packages' local package database entry for the infofile reference.

6) The stucture of the local package database would be essentially the same as under 
PEP 262

There is obviously a lot of stuff that needs to be fleshed out, such as where do these 
files live and the UI for the Package Browser, to give just two examples. As a whole 
though, how does it hold up? 

Aaron