[Newbies] Locking down a squeak image

Giuseppe Luigi Punzi Ruiz glpunzi at lordzealon.com
Sat Nov 10 10:32:43 UTC 2007


LockDown package ask you for a new name for the image with the  
package applied.

But Seems thath LockDown package don't work in 3.9 because a DNU on  
SystemDictionary>>saveAs

The disableProgrammerFacilities send saveAs to Smalltalk class, where  
must be SmalltalkImage I think.

But with this problem, the Image are not saved, but you can do it  
from the Squeak flap .

Are you sure, you open the correct image?



This is the log:

MessageNotUnderstood: SystemDictionary>>saveAs
10 November 2007 11:19:57 am

VM: Mac OS - a SmalltalkImage
Image: Squeak3.9 [latest update: #7068]

SecurityManager state:
Restricted: false
FileAccess: true
SocketAccess: true
Working Dir /Users/glpunzi/Desarrollo/Squeak3.9-final-7067 copia
Trusted Dir /foobar/tooBar/forSqueak/bogus
Untrusted Dir /Users/glpunzi/Library/Preferences/Squeak/Internet/My  
Squeak

SystemDictionary(Object)>>doesNotUnderstand: #saveAs
	Receiver: a SystemDictionary(lots of globals)
	Arguments and temporary variables:
		aMessage: 	saveAs
	Receiver's instance variables:
		tally: 	2378
		array: 	an Array(nil nil nil nil #SMInstaller->SMInstaller  
#EFontBDFFontReaderFo...etc...
		cachedClassNames: 	nil

Preferences class>>disableProgrammerFacilities
	Receiver: Preferences
	Arguments and temporary variables:

	Receiver's instance variables:
		superclass: 	Object
		methodDict: 	a MethodDictionary(#seeClassSide->a CompiledMethod  
(988) )
		format: 	2
		instanceVariables: 	nil
		organization: 	('look in class' seeClassSide)

		subclasses: 	{ServicePreferences}
		name: 	#Preferences
		classPool: 	a Dictionary(#DesktopColor->(Color r: 0.742 g: 1.0 b:  
0.839) #Dictio...etc...
		sharedPools: 	nil
		environment: 	a SystemDictionary(lots of globals)
		category: 	#'System-Support'
		traitComposition: 	nil
		localSelectors: 	nil

UndefinedObject>>DoIt
	Receiver: nil
	Arguments and temporary variables:

	Receiver's instance variables:
nil

Compiler>>evaluate:in:to:notifying:ifFail:logged:
	Receiver: a Compiler
	Arguments and temporary variables:
		textOrStream: 	a ReadWriteStream 'Preferences  
disableProgrammerFacilities'
		aContext: 	nil
		receiver: 	nil
		aRequestor: 	a TextMorphEditor
		failBlock: 	[] in TextMorphEditor(ParagraphEditor) 
 >>evaluateSelection {[FakeClas...etc...
		logFlag: 	true
		methodNode: 	DoIt
	^ Preferences disableProgrammerFacilities
		method: 	a CompiledMethod (1429)
		value: 	nil
		toLog: 	nil
		itsSelectionString: 	nil
		itsSelection: 	nil
	Receiver's instance variables:
		sourceStream: 	a ReadWriteStream 'Preferences  
disableProgrammerFacilities'
		requestor: 	a TextMorphEditor
		class: 	UndefinedObject
		category: 	nil
		context: 	nil
		parserClass: 	Parser


--- The full stack ---
SystemDictionary(Object)>>doesNotUnderstand: #saveAs
Preferences class>>disableProgrammerFacilities
UndefinedObject>>DoIt
Compiler>>evaluate:in:to:notifying:ifFail:logged:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
[] in TextMorphEditor(ParagraphEditor)>>evaluateSelection {[rcvr  
class evaluatorClass new   evaluate: self selectionAsStream   in:  
ctxt...]}
BlockContext>>on:do:
TextMorphEditor(ParagraphEditor)>>evaluateSelection
[] in PluggableTextMorph>>doIt {[textMorph editor evaluateSelection]}
[] in PluggableTextMorph>>handleEdit: {[result := editBlock value]}
TextMorphForEditView(TextMorph)>>handleEdit:
PluggableTextMorph>>handleEdit:
PluggableTextMorph>>doIt
UndefinedObject(Object)>>perform:orSendTo:
[] in MenuItemMorph>>invokeWithEvent: {[(selArgCount := selector  
numArgs) = 0   ifTrue: [target perform: selector] ...]}
BlockContext>>ensure:
CursorWithMask(Cursor)>>showWhile:
MenuItemMorph>>invokeWithEvent:
MenuItemMorph>>mouseUp:
MenuItemMorph>>handleMouseUp:
MouseButtonEvent>>sentTo:
MenuItemMorph(Morph)>>handleEvent:
MorphicEventDispatcher>>dispatchDefault:with:
MorphicEventDispatcher>>dispatchEvent:with:
MenuItemMorph(Morph)>>processEvent:using:
MorphicEventDispatcher>>dispatchDefault:with:
MorphicEventDispatcher>>dispatchEvent:with:
MenuMorph(Morph)>>processEvent:using:
MenuMorph(Morph)>>processEvent:
MenuMorph>>handleFocusEvent:
[] in HandMorph>>sendFocusEvent:to:clear: {[ActiveHand := self.   
ActiveEvent := anEvent.  result := focusHolder     han...]}
[] in PasteUpMorph>>becomeActiveDuring: {[aBlock value]}
BlockContext>>on:do:
PasteUpMorph>>becomeActiveDuring:
HandMorph>>sendFocusEvent:to:clear:
HandMorph>>sendEvent:focus:clear:
HandMorph>>sendMouseEvent:
HandMorph>>handleEvent:
HandMorph>>processEvents
[] in WorldState>>doOneCycleNowFor: {[:h |  ActiveHand := h.  h  
processEvents.  capturingGesture := capturingGest...]}
Array(SequenceableCollection)>>do:
WorldState>>handsDo:
WorldState>>doOneCycleNowFor:
WorldState>>doOneCycleFor:
WorldState>>doOneSubCycleFor:
PasteUpMorph>>doOneSubCycle
MenuMorph>>invokeModalAt:in:allowKeyboard:
MenuMorph>>invokeModal:
MenuMorph>>invokeModal
PluggableTextMorph>>yellowButtonActivity:
...etc...



El 10/11/2007, a las 2:04, Rich White escribió:

> oddly enough I follow this procedure.. even get the "this is a drastic
> step" message ... I select "Yes" to continue .. it acts like it is
> updating the image. but I still get the world menu and halo?.... not
> sure what step I could be leaving out.
>
>
>
>
> On Nov 9, 2007 2:15 AM,  <glpunzi at lordzealon.com> wrote:
>> Hi Rich,
>>
>> You can use the LockDown Package, available from SqueakMap.
>>
>> Here are some documentation about how to use:
>> http://wiki.squeak.org/squeak/518
>>
>> Cheers.
>>
>>
>>> An advice on locking down a squeak image?.... I am wanting to  
>>> make the
>>> world menu, halo, & error messages unactive.
>>>
>>> Thanks in advance !
>>>
>>>
>>> Rich
>>>
>>> =====================
>>
>>> _______________________________________________
>>> Beginners mailing list
>>> Beginners at lists.squeakfoundation.org
>>> http://lists.squeakfoundation.org/mailman/listinfo/beginners
>>>
>>
>>
>> _______________________________________________
>> Beginners mailing list
>> Beginners at lists.squeakfoundation.org
>> http://lists.squeakfoundation.org/mailman/listinfo/beginners
>>
> _______________________________________________
> Beginners mailing list
> Beginners at lists.squeakfoundation.org
> http://lists.squeakfoundation.org/mailman/listinfo/beginners



More information about the Beginners mailing list