[squeak-dev] [ANN] An Example Installer script for preparing 3.10 Dev for VM building

Ken G. Brown kbrown at mac.com
Sun Mar 2 00:25:28 UTC 2008

I've created this Installer script in order to easily build up a an image from a fresh 3.10 Dev image, doing the stuff that is required for setting up the image for building plugins or a VM on Mac.

Please let me know of any improvements, better ways of doing things, or nifty additions.

Cut and paste this script into a file named myInstallerScript-1.0.text or whatever you want, but some changes may be required to the script then.

Ken G. Brown

"Installer script by Ken G. Brown <kbrown at mac.com> 20080301
for use with sq3.10-7159dev08.02.3 and Squeak 3.8.18beta1U.app on Mac. Many thanks to Damien Cassou <damien.cassou at gmail.com> for the Dev images, and to Keith Hodges <keith_hodges at yahoo.co.uk> for the great Installer, and of course everyone else that has made this possible,
Inspiration for this script also comes from one posted to Squeak-dev on Mon, 11 Feb. 2008 by Esteban Lorenzano <estebanlm at gmail.com> 
Please post nice additions to this or fixes for problems that might lie herein, this has been only lightly tested at this point"

"Installer docs reside at http://installer.pbwiki.com/Installer "
"Before you start, edit some of the names if you like, as well as the required local path names, and I recommend executing each step manually at first to have complete control over the process and to get familiar with what it does. As well, a few steps require manual input."

"Do this first" TheWorldMenu new openFileDirectly.
"To open this file, myInstallerScript-1.0.text"

"*** open a Workspace and name it the same as the file you just opened so you can easily save script updates by filing out the workspace ***************************"
SHWorkspace openLabel: 'myInstallerScript-1.0'.

" Copy this Installer script all into the Workspace so that Shout coloring works, then close this file
remembering always from then on to save changes to the script file from the workspace"

"*** make a new changeset ***************************"
DEVToolSet openChangeSorter.

"*** open some browsers 'n stuff'***************************"
Transcript open.
SHWorkspace openLabel:'mySnippets-1.0'. "A place to put snippets & things you want to remember."
OBUBrowser open.

"*** Keith's Level Playing Field - http://installer.pbwiki.com/LevelPlayingField ***************************"
Installer install: 'LevelPlayingField'.

"*** Keith's Level Playing Field Latest - http://installer.pbwiki.com/Latest ***************************"
Installer install: 'MinorFixes'.
Installer install: 'MajorFixes'.
Installer install: 'PackageUpgrades'.

"*** Keith's Installer Test'***************************"
Installer monticello http: 'http://www.squeaksource.com';
project: 'Installer';
install: 'Installer-Test-testReporter.14.mcz'.

"*** SMLoader open. ***************************"
"SMSqueakMap loadUpdates."
squeakmap := Installer squeakmap.
squeakmap open. "opens the squeak map loader gui"

"</begin preparation for vm building > ------------------------------------------------------------------------------------------"
"The following is for setting up to do a vm build on Mac,following the instructions in the readme which lives in the sourcetrree at
"As noted in the readme,
VMM38-gc-instrument-image.1.cs and VMM38-64bit-imageUpdates.1.cs are already there in 3.10 Dev"
"JMM-fixBiasToGrow.1.cs, and bigCursor-bf.1.cs load in with with VMMaker-tpr.58 which comes with VMMaker 3.8b6"

"Installer mantis justFixBug: 0006952."
"This is required to get FFI to load from SqueakMap"
(FileStream readOnlyFileNamed: '/mySqueakStuff/SqueakSourceTypeStuff/ClassBuilder-nameinEnvironmentsubclassOftypeinstanceVariableNamesclassVariableNamespoolDictionariescategoryunsafe.st') fileIn.

"FFI and Balloon3D are needed by VMMaker"
"*** FFI ***************************"
Installer squeakmap install: 'FFI'.
"If this doesn't work, use the SqueakMap gui'"

"Installer universe
addPackage: 'FFI';

"*** Balloon3D ***************************"
Installer squeakmap install: 'Balloon3D'.
"Installer universe
addPackage: 'FFI';

"*** VMMaker ***************************"
Installer squeakmap install: 'VMMaker'.

"*** for 32bit clean ***************************"
"From the readme:"
"For a 3.8.18 VM or later that includes David T Lewis's 32bit clean VM (4GB address space work) 
	load the VmUpdates-dtl and ensure you use the proper sqMemoryAccess.h. I've stuck vmUpdates-dtl into the specialChangeSets folder until 
	they are integrated into VMMaker, also the JMM-VmUpdates32bitclean.2.cs should be loaded which is additional 32bit clean work."

"Edit these path names to point to your local copy of the squeak soource trunk."
"wierd stuff happens in this batch, need to do first one twice, and last one appears to not execute unless doing filin from filelist"
(FileStream readOnlyFileNamed: '/mySqueakStuff/VMSqMackb-1818/root/platforms/Mac OS/vm/specialChangeSets/VmUpdates-dtl/JMM-VmUpdates32bitclean.2.cs') fileIn.

(FileStream readOnlyFileNamed: '/mySqueakStuff/VMSqMackb-1818/root/platforms/Mac OS/vm/specialChangeSets/VmUpdates-dtl/VmUpdates-1001-dtl.1.cs') fileIn.

(FileStream readOnlyFileNamed: '/mySqueakStuff/VMSqMackb-1818/root/platforms/Mac OS/vm/specialChangeSets/VmUpdates-dtl/VmUpdates-1002-dtl.1.cs') fileIn.

(FileStream readOnlyFileNamed: '/mySqueakStuff/VMSqMackb-1818/root/platforms/Mac OS/vm/specialChangeSets/VmUpdates-dtl/VmUpdates-1003-dtl.1.cs') fileIn.

(FileStream readOnlyFileNamed: '/mySqueakStuff/VMSqMackb-1818/root/platforms/Mac OS/vm/specialChangeSets/VmUpdates-dtl/VmUpdates-1004-dtl.1.cs') fileIn.

(FileStream readOnlyFileNamed: '/mySqueakStuff/VMSqMackb-1818/root/platforms/Mac OS/vm/specialChangeSets/VmUpdates-dtl/VmUpdates-1005-dtl.1.cs') fileIn.

(FileStream readOnlyFileNamed: '/mySqueakStuff/VMSqMackb-1818/root/platforms/Mac OS/vm/specialChangeSets/VmUpdates-dtl/VmUpdates-1006-dtl.1.cs') fileIn.

"*** some more changeSets from .../Mac OS/vm/specialChangeSets/ ***************************"
(FileStream readOnlyFileNamed: '/mySqueakStuff/VMSqMackb-1818/root/platforms/Mac OS/vm/specialChangeSets/ArraysToGlobalStruct-JMM.1.cs'
) fileIn.

(FileStream readOnlyFileNamed: '/mySqueakStuff/VMSqMackb-1818/root/platforms/Mac OS/vm/specialChangeSets/Gnuifier.8.cs') fileIn.

"*** SerialExtendedPlugin with Fixes ***************************"
"refer to mantis bug M6966"
(FileStream readOnlyFileNamed: '/mySqueakStuff/SqCoriginals/PluginsOrig/Serial/EnhancedSerialPorts-JMM.11wSmalltalkFixesFor3.10-kgb.cs') fileIn.

"load other plugin changesets here if required"

"*** Open VMMaker ***************************"
VMMakerTool openInWorld. 

"</end preparation for vm building ------------------------------------------------------------------------------------------"

"</begin other custom installs> ------------------------------------------------------------------------------------------"

"do whatever other installs you want here
"</end other custom installs> ------------------------------------------------------------------------------------------"

MCFileBasedRepository flushAllCaches.
Smalltalk garbageCollect.

"*** Save as a new version ***************************"
SmalltalkImage current saveAsNewVersion.


More information about the Squeak-dev mailing list