[Vm-dev] making a unix release package

David T. Lewis lewis at mail.msen.com
Fri Jun 28 12:07:00 UTC 2013

On Thu, Jun 27, 2013 at 01:06:02PM -0700, tim Rowledge wrote:
> On 27-06-2013, at 12:19 PM, "David T. Lewis" <lewis at mail.msen.com> wrote:
> > 
> > On Thu, Jun 27, 2013 at 10:28:42AM -0700, tim Rowledge wrote:
> >> 
> >> Now that I can actually make Pi VMs with or without the fast blt at will, I'd like to be able to assemble a package that I can send out to a few people for testing. I feel sure there used to be a makefile target to do this but can't spot anything that appears appropriate in the current setup. 
> >> 
> >> So how does one do it these days?
> >> 
> > 
> > I don't know how to do it the right way, but if you are in a hurry
> > and don't mind doing it the wrong way, just do a "make install" and
> > tar up the results. I am away and can't give you the specifics, but
> > I'll try to follow up later.
> > 
> > Are you doing an interpreter VM, a stack VM, or both?
> Just the plain interp right now. Scratch is nowhere near ready for the stack/cog world yet.

Here is a crude but effective recipe:

First build the VM and install it in the normal way:

$ make install

The installation directory is determined by the SVN version and VMM versionString,
so check it, for example like this:

$  squeak -version
4.12.5-2744 #1 XShm Sat Jun 22 20:10:52 EDT 2013 gcc 4.5.0
Linux linux-jh8m #1 SMP PREEMPT 2011-12-13 18:27:38 +0100 x86_64 x86_64 x86_64 GNU/Linux
plugin path: /usr/local/lib/squeak/4.12.5-2744 [default: /usr/local/lib/squeak/4.12.5-2744/]

Make a tar archive. Use relative paths in the archive so the the archive can be unpacked in any relative location. So:

$ cd /usr/local
$ tar czvf /tmp/Squeak-tpr- lib/squeak/4.10.2-2614 bin/squeak bin/squeak.sh share/man/man1/squeak.1

This will create a file in /tmp called Squeak-tpr- that contains
more or less the same files that Ian puts into a standard distribution. Note, the
".tgz" suffix indicates that it is a compressed tar (the "z" option in the tar
command) as opposed to a normal uncompressed tar file, for which you would use
the suffix ".tar".

You can unpack the tar file anywhere you want. To install it in the normal location,
cd to /usr/local and unpack the tar ($ tar xzvf /tmp/Squeak-tpr-

If you want to run the VM in some other directory, unpack it there:
$ cd my/temp/directory
$ tar xzvf /tmp/Squeak-tpr-

In that case, you will want to run the VM directly from within its own directory
so that the plugins will be located properly (since they are not in the expected
installation directory compiled in to the VM). So in this cases, the VM proper
will be in my/tmp/directory/lib/squeak/4.10.2-2614/

So for example you can put your image, changes, and sources file in that directory
and run the image with the squeakvm executable in that directory.

Depending on how you intend your victims to use the test VM, you may find it simpler
to distribute just that actual VM files (the contents of the lib/squeak/4.10.2-2614/
directory in this example) and run the Scratch image from a directory containing
all of those files.


More information about the Vm-dev mailing list