Philip Quaife 22 Sept 05

Download from http://qs.co.nz/Download.html

Purpose A collection of cgi scripts that allow a web server to take a bare starkit file and add in platform dependant (or other) extensions. 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 principle 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.
  • dependancies can be stored as zip or kit
  • will gunzip .gz files.
  • Places build information into the kit.
  • Allows build if none critical dependancies are missing.

Why not starsync?

The sdx update mechanism is great, I love it. But it cannot selectivly update a kit based on platform dependancies. 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.
  2. Cgi script mounts kit, reads release information and displays.
  3. Cgi script searches for dependancies in:
    a. Local to web server.
    b. Known list of server archives and archive server directories.
  1. Client Clicks download button.
  2. cgi script :
    a) mounts kit as -readonly + translucent.
    b) searches for each dependancy trying OS+CPU, OS-only, CPU-only, and finally platform independant file names.
    c) If resource is remote it is fetched via http into in memory vfs.
    d) if gziped it is unziped.
    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 repostitories 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


I don't think the page title is spelled quite the way one would want:

de·pen·dent

adj.

  1. Contingent on another.
  2. Subordinate.
  3. Relying on or requiring the aid of another for support: dependent children.
  4. Hanging down.

n. also de·pen·dant One who relies on another especially for financial support.


Category Deployment | Category Application | Category Scripted Document | Category Education