[Philip Quaife] ''22 Sept 05'' Download from http://qs.co.nz/Download.html '''Purpose''' A collection of [cgi] [script]s that allow a web server to take a bare [starkit] file and add in [platform]-dependent (or other) [extension]s. It can generate a [starpack] or starkit file. All files are mounted in vfs so no server side disk access is required. '''Why?''' I want to be able to distribute some of my applications and demos to prospective clients as demonstrations of my talent. The problem is that most of my application use one or more binary extensions. For development I run ''wish'' with the programs picking up the extensions from my library directory and are shared among all applications. If I update an extension all applications can get the latest version (the principal point of shared libraries). A starkit however is expected to contain all its resources inside the kit file itself (the principle point of a starkit). When it comes to distributing a kit for use by other people, I have no choice but to create a special distribution kit that pulls in all my local resource and packages them up in the kit. Since I don't know what platform they may be using I have to put shared libraries for all common platforms into the one kit (also a selling point of starkits). The size and management of such compound kits is not tractable. Hence the .kit files can be published without bundling the resources and can then be customised for the intended recipients platform. '''Features''' * Should work with any web server, no special features. * Automatic Remote fetching of resources (as zip/kit files). * Ability to browse kit info, screenshots and other info before downloading. * dependencies can be stored as zip or kit * will gunzip .gz files. * Places build information into the kit. * Allows build if none critical dependencies are missing. '''Why not starsync?''' The ''sdx update'' mechanism is great, I love it. But it cannot selectivly update a kit based on platform dependencies. And it does not solve the problem of having to build special kits for distribution. In the future I would like to be able to work the functionality into sdx for a community wide distributed archive. However there has to be a global need for this system beyond myself. '''Operation overview''' 1. Client fetches web form, fills in application, OS , and CPU information, submits form. 1. Cgi script mounts kit, reads release information and displays. 1. Cgi script searches for dependencies in: a. Local to web server. b. Known list of server archives and archive server directories. 1. Client Clicks download button. 1. cgi script : a) mounts kit as -readonly + translucent. b) searches for each dependency trying OS+CPU, OS-only, CPU-only, and finally platform independent file names. c) If resource is remote it is fetched via http into in memory vfs. d) if gziped it is unzipped. e) if it is a .zip file it is mounted. f) if it is a .kit file it is 'read' into memory and then mounted. g) all specified files are copied into the application kit file. h) if starpack requested, it searches local server and then list of known repositories for runtime: currently qsolutions and then equi4 i) downloads , gunzips runtime, mounts runtime kit and copies into application kit. j) sends runtime + starkit or just starkit to client. ---- '''Comments''' Very cool - I did something similar which I describe here: http://www.dedasys.com/articles/customized_downloads.html ---- Fascinating stuff Philip - parallels some stuff I've considered doing but it goes way further. Great work! - [stevel] ---- [Category Deployment] | [Category Application] | [Category Scripted Document] | [Category Education]