<html><body bgcolor="#FFFFFF"><div><span class="Apple-style-span" style="-webkit-tap-highlight-color: rgba(26, 26, 26, 0.296875); -webkit-composition-fill-color: rgba(175, 192, 227, 0.230469); -webkit-composition-frame-color: rgba(77, 128, 180, 0.230469); ">On Aug 10, 2010, at 7:24 PM, Levente Uzonyi &lt;<a href="mailto:leves@elte.hu">leves@elte.hu</a>&gt; wrote:</span><br></div><div><br></div><blockquote type="cite"><div><span class="Apple-style-span" style="-webkit-tap-highlight-color: rgba(26, 26, 26, 0.296875); -webkit-composition-fill-color: rgba(175, 192, 227, 0.230469); -webkit-composition-frame-color: rgba(77, 128, 180, 0.230469); ">Did you know that the license is LGPL?</span><font class="Apple-style-span" color="#000000"><font class="Apple-style-span" color="#0023A3"><br></font></font></div></blockquote><div><br></div>F*{%!<div><br></div><div>:)</div><div><br></div><div>Isn't is weird how the legalese gets hard to interpret in the context of Smalltalk? What's the difference between "linking to" and a "derivative work," really? I suppose one might broadly interpret that to mean "loaded into the image but unmodified." But if one shipped an image with it loaded, would that image be a derivative work? Who knows?? And the worst part is, it would probably be next to impossible to explain this to a judge, who probably doesn't actually know what linking really is, much less what a persistent object memory is.</div><div><br></div><div>Seems like the safe thing to do is to ship one's code separately from it. Gah.</div><div><br></div><div>For the record, I Am Not A Lawyer!</div><div><br></div><div>Thanks for the heads up on that one, Levente. Meanwhile, I'm having more luck with the SS bits, so thanks again.&nbsp;</div><div><br></div><div>Since my intended application keeps everything behind a web server, things-GPL shouldn't be an issue for me, but it's food for thought.</div><div><br></div><div><blockquote type="cite"><div><span></span><br><span>Levente</span><br><span></span><br><blockquote type="cite"><span></span><br></blockquote><blockquote type="cite"><span>10 August 2010 6:40:17.74 pm</span><br></blockquote><blockquote type="cite"><span></span><br></blockquote><blockquote type="cite"><span>VM: Mac OS - Smalltalk</span><br></blockquote><blockquote type="cite"><span>Image: Squeak4.1 [latest update: #9957]</span><br></blockquote><blockquote type="cite"><span></span><br></blockquote><blockquote type="cite"><span>SecurityManager state:</span><br></blockquote><blockquote type="cite"><span>Restricted: false</span><br></blockquote><blockquote type="cite"><span>FileAccess: true</span><br></blockquote><blockquote type="cite"><span>SocketAccess: true</span><br></blockquote><blockquote type="cite"><span>Working Dir /Users/casey/Desktop/Squeak4.1</span><br></blockquote><blockquote type="cite"><span>Trusted Dir /foobar/tooBar/forSqueak/bogus/</span><br></blockquote><blockquote type="cite"><span>Untrusted Dir /foobar/tooBar/forSqueak/bogus/</span><br></blockquote><blockquote type="cite"><span></span><br></blockquote><blockquote type="cite"><span>ByteString(Object)&gt;&gt;error:</span><br></blockquote><blockquote type="cite"><span>Receiver: ''</span><br></blockquote><blockquote type="cite"><span>Arguments and temporary variables:</span><br></blockquote><blockquote type="cite"><span>aString: 'subscript is out of bounds: 1'</span><br></blockquote><blockquote type="cite"><span>Receiver's instance variables:</span><br></blockquote><blockquote type="cite"><span>''</span><br></blockquote><blockquote type="cite"><span></span><br></blockquote><blockquote type="cite"><span>ByteString(Object)&gt;&gt;errorSubscriptBounds:</span><br></blockquote><blockquote type="cite"><span>Receiver: ''</span><br></blockquote><blockquote type="cite"><span>Arguments and temporary variables:</span><br></blockquote><blockquote type="cite"><span>index: 1</span><br></blockquote><blockquote type="cite"><span>Receiver's instance variables:</span><br></blockquote><blockquote type="cite"><span>''</span><br></blockquote><blockquote type="cite"><span></span><br></blockquote><blockquote type="cite"><span>ByteString(Object)&gt;&gt;at:</span><br></blockquote><blockquote type="cite"><span>Receiver: ''</span><br></blockquote><blockquote type="cite"><span>Arguments and temporary variables:</span><br></blockquote><blockquote type="cite"><span>index: 1</span><br></blockquote><blockquote type="cite"><span>Receiver's instance variables:</span><br></blockquote><blockquote type="cite"><span>''</span><br></blockquote><blockquote type="cite"><span></span><br></blockquote><blockquote type="cite"><span>ByteString&gt;&gt;at:</span><br></blockquote><blockquote type="cite"><span>Receiver: ''</span><br></blockquote><blockquote type="cite"><span>Arguments and temporary variables:</span><br></blockquote><blockquote type="cite"><span>index: 1</span><br></blockquote><blockquote type="cite"><span>Receiver's instance variables:</span><br></blockquote><blockquote type="cite"><span>''</span><br></blockquote><blockquote type="cite"><span></span><br></blockquote><blockquote type="cite"><span></span><br></blockquote><blockquote type="cite"><span>--- The full stack ---</span><br></blockquote><blockquote type="cite"><span>ByteString(Object)&gt;&gt;error:</span><br></blockquote><blockquote type="cite"><span>ByteString(Object)&gt;&gt;errorSubscriptBounds:</span><br></blockquote><blockquote type="cite"><span>ByteString(Object)&gt;&gt;at:</span><br></blockquote><blockquote type="cite"><span>ByteString&gt;&gt;at:</span><br></blockquote><blockquote type="cite"><span>- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -</span><br></blockquote><blockquote type="cite"><span>ByteString(SequenceableCollection)&gt;&gt;first</span><br></blockquote><blockquote type="cite"><span>EncoderForV3PlusClosures(Encoder)&gt;&gt;encodeVariable:sourceRange:ifUnknown:</span><br></blockquote><blockquote type="cite"><span>Parser&gt;&gt;variable</span><br></blockquote><blockquote type="cite"><span>Parser&gt;&gt;primaryExpression</span><br></blockquote><blockquote type="cite"><span>Parser&gt;&gt;expression</span><br></blockquote><blockquote type="cite"><span>Parser&gt;&gt;statements:innerBlock:blockNode:</span><br></blockquote><blockquote type="cite"><span>Parser&gt;&gt;statements:innerBlock:</span><br></blockquote><blockquote type="cite"><span>Parser&gt;&gt;method:context:</span><br></blockquote><blockquote type="cite"><span>[] in Parser&gt;&gt;parse:class:category:noPattern:context:notifying:ifFail:</span><br></blockquote><blockquote type="cite"><span>BlockClosure&gt;&gt;on:do:</span><br></blockquote><blockquote type="cite"><span>Parser&gt;&gt;parse:class:category:noPattern:context:notifying:ifFail:</span><br></blockquote><blockquote type="cite"><span>Compiler&gt;&gt;translate:noPattern:ifFail:</span><br></blockquote><blockquote type="cite"><span>Compiler&gt;&gt;compile:in:classified:notifying:ifFail:</span><br></blockquote><blockquote type="cite"><span>OracleMetadataDescriptorSystem</span><br></blockquote><blockquote type="cite"><span>class(Behavior)&gt;&gt;compile:classified:notifying:trailer:ifFail:</span><br></blockquote><blockquote type="cite"><span>MethodAddition&gt;&gt;createCompiledMethod</span><br></blockquote><blockquote type="cite"><span>[] in [] in [] in MCPackageLoader&gt;&gt;basicLoad</span><br></blockquote><blockquote type="cite"><span>[] in [] in OrderedCollection(Collection)&gt;&gt;do:displayingProgress:every:</span><br></blockquote><blockquote type="cite"><span>OrderedCollection&gt;&gt;do:</span><br></blockquote><blockquote type="cite"><span>[] in OrderedCollection(Collection)&gt;&gt;do:displayingProgress:every:</span><br></blockquote><blockquote type="cite"><span>[] in [] in ProgressInitiationException&gt;&gt;defaultMorphicAction</span><br></blockquote><blockquote type="cite"><span>BlockClosure&gt;&gt;on:do:</span><br></blockquote><blockquote type="cite"><span>[] in ProgressInitiationException&gt;&gt;defaultMorphicAction</span><br></blockquote><blockquote type="cite"><span>BlockClosure&gt;&gt;ensure:</span><br></blockquote><blockquote type="cite"><span>ProgressInitiationException&gt;&gt;defaultMorphicAction</span><br></blockquote><blockquote type="cite"><span>ProgressInitiationException&gt;&gt;defaultAction</span><br></blockquote><blockquote type="cite"><span>UndefinedObject&gt;&gt;handleSignal:</span><br></blockquote><blockquote type="cite"><span>MethodContext(ContextPart)&gt;&gt;handleSignal:</span><br></blockquote><blockquote type="cite"><span>MethodContext(ContextPart)&gt;&gt;handleSignal:</span><br></blockquote><blockquote type="cite"><span>MethodContext(ContextPart)&gt;&gt;handleSignal:</span><br></blockquote><blockquote type="cite"><span>MethodContext(ContextPart)&gt;&gt;handleSignal:</span><br></blockquote><blockquote type="cite"><span>MethodContext(ContextPart)&gt;&gt;handleSignal:</span><br></blockquote><blockquote type="cite"><span>ProgressInitiationException(Exception)&gt;&gt;signal</span><br></blockquote><blockquote type="cite"><span>ProgressInitiationException&gt;&gt;display:at:from:to:during:</span><br></blockquote><blockquote type="cite"><span>ProgressInitiationException class&gt;&gt;display:at:from:to:during:</span><br></blockquote><blockquote type="cite"><span>ByteString(String)&gt;&gt;displayProgressAt:from:to:during:</span><br></blockquote><blockquote type="cite"><span>OrderedCollection(Collection)&gt;&gt;do:displayingProgress:every:</span><br></blockquote><blockquote type="cite"><span>OrderedCollection(Collection)&gt;&gt;do:displayingProgress:</span><br></blockquote><blockquote type="cite"><span>[] in [] in MCPackageLoader&gt;&gt;basicLoad</span><br></blockquote><blockquote type="cite"><span>BlockClosure&gt;&gt;on:do:</span><br></blockquote><blockquote type="cite"><span>[] in MCPackageLoader&gt;&gt;basicLoad</span><br></blockquote><blockquote type="cite"><span>BlockClosure&gt;&gt;ensure:</span><br></blockquote><blockquote type="cite"><span>MCPackageLoader&gt;&gt;basicLoad</span><br></blockquote><blockquote type="cite"><span>[] in MCPackageLoader&gt;&gt;loadWithNameLike:</span><br></blockquote><blockquote type="cite"><span>[] in MCPackageLoader&gt;&gt;useChangeSetNamed:during:</span><br></blockquote><blockquote type="cite"><span>BlockClosure&gt;&gt;ensure:</span><br></blockquote><blockquote type="cite"><span>MCPackageLoader&gt;&gt;useChangeSetNamed:during:</span><br></blockquote><blockquote type="cite"><span>MCPackageLoader&gt;&gt;useNewChangeSetNamedLike:during:</span><br></blockquote><blockquote type="cite"><span>MCPackageLoader&gt;&gt;loadWithNameLike:</span><br></blockquote><blockquote type="cite"><span>MCVersionLoader&gt;&gt;load</span><br></blockquote><blockquote type="cite"><span>MCVersionLoader class&gt;&gt;loadVersion:</span><br></blockquote><blockquote type="cite"><span>MCVersion&gt;&gt;load</span><br></blockquote><blockquote type="cite"><span>[] in SARInstaller&gt;&gt;fileInMonticelloZipVersionNamed:</span><br></blockquote><blockquote type="cite"><span>[] in SARInstaller class&gt;&gt;withCurrentChangeSetNamed:do:</span><br></blockquote><blockquote type="cite"><span>BlockClosure&gt;&gt;ensure:</span><br></blockquote><blockquote type="cite"><span>SARInstaller class&gt;&gt;withCurrentChangeSetNamed:do:</span><br></blockquote><blockquote type="cite"><span>SARInstaller&gt;&gt;fileInMonticelloZipVersionNamed:</span><br></blockquote><blockquote type="cite"><span>SARInstaller&gt;&gt;DoIt</span><br></blockquote><blockquote type="cite"><span>-- and more not shown --</span><br></blockquote><blockquote type="cite"><span></span><br></blockquote><blockquote type="cite"><span></span><br></blockquote><blockquote type="cite"><span>-- </span><br></blockquote><blockquote type="cite"><span>Casey Ransberger</span><br></blockquote><blockquote type="cite"><span></span><br></blockquote><span></span><br></div></blockquote></div></body></html>