Image building

Göran Krampe goran at krampe.se
Fri Feb 16 14:32:32 UTC 2007


Hi!

Since the question on image building came up I just thought I could share
a script we use with Gjallar - it is very KISS. For more advanced stuff -
Keith Hodges has done lots of work on image building recently.

Below is my script, slightly edited. It basically does these things:

1. Update SqueakMap.
2. Install a bunch of packages, either "newest for this Squeak version" or
specific versions.
3. Set up some MC repositories.
4. Install newest MC version given matching patterns.
5. Install a changeset with "loose patches".

regards, Göran
-------------
| gjallarRepo seasideRepo magmaRepo graphvizRepo mcRepo block |
SMSqueakMap default loadUpdates;
		installPackageNamed: 'Shout';     "this is used by the LocalizationTools"
		installPackageNamed: 'DynamicBindings';
		installPackageNamed: 'KomServices';
		installPackageNamed: 'KomHttpServer';
		installPackageNamed: 'HTMLBuilder';
		installPackageNamed: 'HttpView2';
		installPackageNamed: 'YAXO';
		installPackageNamed: 'ODBC for Squeak';
		installPackageNamed: 'ODBCEnh' autoVersion: '7':
		installPackageNamed: 'SoapCore' autoVersion: '6';
		installPackageNamed: 'OperaORB' autoVersion: '1'.

	(Smalltalk at: #MCRepositoryGroup) default initialize
		addRepository: (magmaRepo _ (Smalltalk at: #MCHttpRepository)
			location: 'http://www.squeaksource.com/MagmaTester'
			user: ''
			password: '');
		addRepository: (mcRepo _ MCHttpRepository
			location: 'http://www.squeaksource.com/Monticello'
			user: ''
			password: '');
		addRepository: (graphvizRepo _ (Smalltalk at: #MCHttpRepository)
			location: 'http://squeak.saltypickle.com/GraphViz/'
			user: ''
			password: '');
		addRepository: (seasideRepo _ (Smalltalk at: #MCHttpRepository)
			location: 'http://www.squeaksource.com/Seaside'
			user: ''
			password: '');
		addRepository: (gjallarRepo _ (Smalltalk at: #MCHttpRepository)
			location: 'http://gjallar.krampe.se'
			user: ''
			password: '').

      block _ [:repo :base | | coll name |
		coll _ SortedCollection new.
		(repo readableFileNames select: [:e | base, '*' match: e]) do: [ :each |
			name _ (each copyUpToLast: $.) copyUpTo: $(.
			name last isDigit ifTrue: [
				coll add:  (((name copyAfterLast: $-) copyAfter: $.) asInteger) ->
each]].
		coll last value].

	(mcRepo versionFromFileNamed: (
		block value: mcRepo value: 'Monticello-avi.')) load.
	(magmaRepo versionFromFileNamed: (
		block value: magmaRepo value: 'MagmaServerLoader-cmm.')) load.
	(gjallarRepo versionFromFileNamed: (
		block value: gjallarRepo value: 'GraphViz-gk.')) load.
"	(graphvizRepo versionFromFileNamed: (
		block value: graphvizRepo value: 'GraphViz-jrp.')) load."

	"Prerequisites for the localization tool"
	(gjallarRepo versionFromFileNamed: (
		block value: gjallarRepo value: 'AST')) load.
	(gjallarRepo versionFromFileNamed: (
		block value: gjallarRepo value: 'Shout')) load.

	(gjallarRepo versionFromFileNamed: (
		block value: gjallarRepo value: 'INIFile-gk.')) load.

	(gjallarRepo versionFromFileNamed: (
		block value: gjallarRepo value: 'Seaside2.7a1-gk.')) load.
	(seasideRepo versionFromFileNamed: (
		block value: seasideRepo value: 'Scriptaculous-lr.141')) load.

	(gjallarRepo versionFromFileNamed: (
		block value: gjallarRepo value: 'LocalizationTools-kb.')) load.
	(gjallarRepo versionFromFileNamed: (
		block value: gjallarRepo value: 'InstallerBuilder-gk.')) load.
	(gjallarRepo versionFromFileNamed: (
		block value: gjallarRepo value: 'LDAP-gk.')) load.
	(gjallarRepo versionFromFileNamed: (
		block value: gjallarRepo value: 'Q2v0.3-gk')) load.
	(gjallarRepo versionFromFileNamed: (
		block value: gjallarRepo value: 'Q2-Morphic-hk')) load.

	SARInstaller fileIntoChangeSetNamed: 'basepatches'
		fromStream: (FileDirectory default readOnlyFileNamed: 'basepatches.1.cs').

	Q2Gjallar prepareDevImage.



More information about the Exupery mailing list