Zip-based Squeak distributions -- ideas needed

Ned Konz ned at bike-nomad.com
Tue Oct 22 00:19:54 UTC 2002


On Monday 21 October 2002 04:44 pm, Andreas Raab wrote:

> > For backwards compatibility, the entire logic has to live in the
> > self-extracting stub at the front of the zip.
>
> Duh ... I'm not sure if that's a good idea. Have you considered
> using something like a ".cs.zip" extension (similar to .cs.gz) to
> indicate that this is a "multi changes" file?! Then all you'd need
> is to modify the file list to recognize it.

Well, sure. But I was also thinking that that would require people to 
first load a CS to get that capability. I suppose if we could get it 
into the update stream(s), that would be OK.

> What I'd be doing is to make up a "ZipInstaller" class which
> handles all of this in any way it wants. For accessing the current
> context use "ZipInstaller current" (which could return nil if it's
> a "regular fileIn"). 

In other words, a global. Yes, that seems like the best idea.
Making a separate class to handle this is, of course, a clean way to 
do it.

Then preamble/postscript code could go:

ZipInstaller current loadChangeSet: 'whatever.cs'.
ZipInstaller current extract: 'readme.txt'.
ZipInstaller current extract: 'readme1.txt' to: 'README.TXT'.
ZipInstaller current fileIn: 'misc/whatever.st'.
ZipInstaller current extractDirectory: 'images/'.

etc.

> For the logging - don't use the
> self-extracting stug. Just make it part of the proper installation
> logic.
>
> While I can see why you would like it to be "just like a fileIn"
> I'm uncertain about how good of an idea that really is. There's too
> much hackery involved for my taste.

It is a bit hackish, but it would let us distribute 
backwards-compatible packages.  I've just learned about  
ChangeSet>>removeSelectorChanges:class: which could be useful with 
covering the installer's tracks.

I suppose, though, we could just say "update your image first".

So the question is: "Is backwards compatibility important?".

-- 
Ned Konz
http://bike-nomad.com
GPG key ID: BEEA7EFE




More information about the Squeak-dev mailing list