<div dir="ltr">Hi Frank,<div><br></div><div>Sound reasonable your comment, but in my case i don&#39;t have startup file, i guess, please see the parameters passed to squeakvm, no startup file is passed, right ? Or there is something I&#39;m don&#39;t understanding </div>
<div><br></div><div>Thanks.</div><div><br></div><div>Gustavo. </div></div><div class="gmail_extra"><br><br><div class="gmail_quote">On Fri, Dec 6, 2013 at 11:26 AM, Frank Shearar <span dir="ltr">&lt;<a href="mailto:frank.shearar@gmail.com" target="_blank">frank.shearar@gmail.com</a>&gt;</span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="HOEnZb"><div class="h5">On 6 December 2013 12:34, Gustavo Duarte &lt;<a href="mailto:gduarte@activitycentral.com">gduarte@activitycentral.com</a>&gt; wrote:<br>

&gt; Dave,<br>
&gt;<br>
&gt; I believe that squeakvm is compiled with Sugar support, because I can run<br>
&gt; Scratch and save projects on Journal, just in case, there is another way to<br>
&gt; know if squeakvm is compiled with Sugar support ?<br>
&gt;<br>
&gt;<br>
&gt; I paste bellow another test I had done:<br>
&gt;<br>
&gt; As Scratch is working well with the interaction with Sugar, I copied the<br>
&gt; same parameters of Scratch starting script, and executed this from a<br>
&gt; terminal as:<br>
&gt;<br>
&gt; sudo /usr/lib/squeak/4.4.7-2357/squeakvm -vm-display-X11 -swapbtn -encoding<br>
&gt; UTF-8 -vm-sound-ALSA -sugarBundleId org.vpri.EtoysActivity -sugarActivityId<br>
&gt; 24c67ec800d1d71723f959b56a213accf140e7bc /usr/share/etoys/etoys.image<br>
&gt; SQUEAKLETS /home/gustavo-cm1/.sugar/default/org.vpri.EtoysActivity/instance/<br>
&gt; BUNDLE_ID org.vpri.EtoysActivity ACTIVITY_ID<br>
&gt; 24c67ec800d1d71723f959b56a213accf140e7bc<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt; The output debug log is:<br>
&gt;<br>
&gt;<br>
&gt; =========== SqueakDebug.log START ==========<br>
&gt; Error: No content to install<br>
&gt; 6 December 2013 10:05:27 am<br>
&gt;<br>
&gt; VM: unix - a SmalltalkImage<br>
&gt; Image: etoys5.0 [latest update: #2408]<br>
&gt;<br>
&gt; SecurityManager state:<br>
&gt; Restricted: false<br>
&gt; FileAccess: true<br>
&gt; SocketAccess: true<br>
&gt; Working Dir /usr/share/etoys/My Squeak<br>
&gt; Trusted Dir /usr/share/etoys/secure<br>
&gt; Untrusted Dir /usr/share/etoys/My Squeak<br>
&gt;<br>
&gt; CodeLoader(Object)&gt;&gt;error:<br>
&gt; Receiver: a CodeLoader<br>
&gt; Arguments and temporary variables:<br>
&gt; aString:  &#39;No content to install&#39;<br>
&gt; Receiver&#39;s instance variables:<br>
&gt; baseURL:  &#39;&#39;<br>
&gt; sourceFiles:  #(a HTTPDownloadRequest)<br>
&gt; segments:  nil<br>
&gt; publicKey:  nil<br>
<br>
</div></div>I don&#39;t know if it&#39;s hugely useful info, but &#39;No content to install&#39;<br>
means the startup file couldn&#39;t be found. This often happens to me<br>
because the startup file location is relative to the directory<br>
containing the image, not the location where you run the command.<br>
<br>
So if you&#39;re in /home/frank/squeak-ci/ and you say &quot;$<br>
target/cog.r2766/coglinux/bin/squeak target/TrunkImage.image<br>
HudsonTools.st&quot;, &quot;HudsonTools.st&quot; is translated into<br>
&quot;/home/frank/squeak-ci/target/HudsonTools.st&quot;, not<br>
&quot;/home/frank/squeak-ci/HudsonTools.st&quot;.<br>
<span class="HOEnZb"><font color="#888888"><br>
frank<br>
</font></span><div class="HOEnZb"><div class="h5"><br>
&gt; CodeLoader&gt;&gt;installSourceFile:<br>
&gt; Receiver: a CodeLoader<br>
&gt; Arguments and temporary variables:<br>
&gt; aStream:  nil<br>
&gt; contents:  nil<br>
&gt; trusted:  nil<br>
&gt; Receiver&#39;s instance variables:<br>
&gt; baseURL:  &#39;&#39;<br>
&gt; sourceFiles:  #(a HTTPDownloadRequest)<br>
&gt; segments:  nil<br>
&gt; publicKey:  nil<br>
&gt;<br>
&gt; [] in CodeLoader&gt;&gt;installSourceFiles {[:req | self installSourceFile: req<br>
&gt; contentStream]}<br>
&gt; Arguments and temporary variables:<br>
&gt; req:  a HTTPDownloadRequest<br>
&gt;<br>
&gt; Array(SequenceableCollection)&gt;&gt;do:<br>
&gt; Receiver: #(a HTTPDownloadRequest)<br>
&gt; Arguments and temporary variables:<br>
&gt; aBlock:  [] in CodeLoader&gt;&gt;installSourceFiles {[:req | self<br>
&gt; installSourceFile: r...etc...<br>
&gt; index:  1<br>
&gt; indexLimiT:  1<br>
&gt; Receiver&#39;s instance variables:<br>
&gt; #(a HTTPDownloadRequest)<br>
&gt;<br>
&gt;<br>
&gt; --- The full stack ---<br>
&gt; CodeLoader(Object)&gt;&gt;error:<br>
&gt; CodeLoader&gt;&gt;installSourceFile:<br>
&gt; [] in CodeLoader&gt;&gt;installSourceFiles {[:req | self installSourceFile: req<br>
&gt; contentStream]}<br>
&gt; Array(SequenceableCollection)&gt;&gt;do:<br>
&gt;  - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -<br>
&gt; CodeLoader&gt;&gt;installSourceFiles<br>
&gt; ProjectLauncher&gt;&gt;startUpAfterLogin<br>
&gt; ProjectLauncher&gt;&gt;doEtoyLogin<br>
&gt; ProjectLauncher&gt;&gt;startUp<br>
&gt; [] in AutoStart class&gt;&gt;startUp: {[launcher startUp]}<br>
&gt; WorldState&gt;&gt;runStepMethodsIn:<br>
&gt; PasteUpMorph&gt;&gt;runStepMethods<br>
&gt; WorldState&gt;&gt;doOneCycleNowFor:<br>
&gt; WorldState&gt;&gt;doOneCycleFor:<br>
&gt; PasteUpMorph&gt;&gt;doOneCycle<br>
&gt; [] in Project class&gt;&gt;spawnNewProcess {[[World doOneCycle.  Processor yield.<br>
&gt; false] whileFalse.  nil]}<br>
&gt; [] in BlockContext&gt;&gt;newProcess {[self value.  Processor terminateActive]}<br>
&gt; =========== SqueakDebug.log END  ==========<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt; On Fri, Dec 6, 2013 at 12:17 AM, David T. Lewis &lt;<a href="mailto:lewis@mail.msen.com">lewis@mail.msen.com</a>&gt; wrote:<br>
&gt;&gt;<br>
&gt;&gt; On Thu, Dec 05, 2013 at 02:36:42PM -0800, Eliot Miranda wrote:<br>
&gt;&gt; &gt; On Thu, Dec 5, 2013 at 2:01 PM, Gustavo Duarte<br>
&gt;&gt; &gt; &lt;<a href="mailto:gduarte@activitycentral.com">gduarte@activitycentral.com</a>&gt;wrote:<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; &gt; Eliot,<br>
&gt;&gt; &gt; &gt;<br>
&gt;&gt; &gt; &gt; Here the output of ps ww PID command.<br>
&gt;&gt; &gt; &gt;<br>
&gt;&gt; &gt; &gt; XO:<br>
&gt;&gt; &gt; &gt;<br>
&gt;&gt; &gt; &gt; PID TTY      STAT   TIME COMMAND<br>
&gt;&gt; &gt; &gt;   976 ?        S      0:22 /usr/lib/squeak/4.10.2-2614/squeakvm<br>
&gt;&gt; &gt; &gt; -encoding<br>
&gt;&gt; &gt; &gt; UTF-8 -vm-display-x11 -xshm -sugarBundleId org.vpri.EtoysActivity<br>
&gt;&gt; &gt; &gt; -sugarActivityId d25f8c2f9a19397ce914965abf04ed31b3f6b0ea<br>
&gt;&gt; &gt; &gt; -vm-sound-ALSA<br>
&gt;&gt; &gt; &gt; /usr/share/etoys/etoys.image  BUNDLE_PATH<br>
&gt;&gt; &gt; &gt; /home/olpc/Activities/Etoys.activity SQUEAKLETS<br>
&gt;&gt; &gt; &gt; /home/olpc/.sugar/default/org.vpri.EtoysActivity/instance BUNDLE_ID<br>
&gt;&gt; &gt; &gt; org.vpri.EtoysActivity ACTIVITY_ID<br>
&gt;&gt; &gt; &gt; d25f8c2f9a19397ce914965abf04ed31b3f6b0ea<br>
&gt;&gt; &gt; &gt;<br>
&gt;&gt; &gt; &gt;<br>
&gt;&gt; &gt; &gt; CM:<br>
&gt;&gt; &gt; &gt;<br>
&gt;&gt; &gt; &gt; PID TTY      STAT   TIME COMMAND<br>
&gt;&gt; &gt; &gt;  5912 ?        Rl     0:06 /usr/lib/squeak/4.4.7-2357/squeakvm<br>
&gt;&gt; &gt; &gt; -encoding<br>
&gt;&gt; &gt; &gt; UTF-8 -vm-display-x11 -xshm -sugarBundleId org.vpri.EtoysActivity<br>
&gt;&gt; &gt; &gt; -sugarActivityId c03be0a816bee1440f701b7d3b504b0968cb3274<br>
&gt;&gt; &gt; &gt; -vm-sound-pulse<br>
&gt;&gt; &gt; &gt; /usr/share/etoys/etoys.image BUNDLE_PATH<br>
&gt;&gt; &gt; &gt; /usr/share/sugar/activities/Etoys.activity SQUEAKLETS<br>
&gt;&gt; &gt; &gt; /home/gustavo-cm1/.sugar/default/org.vpri.EtoysActivity/instance<br>
&gt;&gt; &gt; &gt; BUNDLE_ID<br>
&gt;&gt; &gt; &gt; org.vpri.EtoysActivity ACTIVITY_ID<br>
&gt;&gt; &gt; &gt; c03be0a816bee1440f701b7d3b504b0968cb3274<br>
&gt;&gt; &gt; &gt;<br>
&gt;&gt; &gt; &gt;<br>
&gt;&gt; &gt; &gt; Seem the script that start squeak is ok, right ?<br>
&gt;&gt; &gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; Looks like it :-(.  That implies theres a bug in the VM on ubuntu :-(.<br>
&gt;&gt; &gt;  Might it be something to do with the vm-sound-pulse plugin mis-parsing<br>
&gt;&gt; &gt; the<br>
&gt;&gt; &gt; command line?  What happens if you start it with no sound (omit<br>
&gt;&gt; &gt; -vm-sound-pulse) ?<br>
&gt;&gt; &gt;<br>
&gt;&gt;<br>
&gt;&gt; After reading this thread, I was initially confused by the command line<br>
&gt;&gt; options that are being passed to the VM:<br>
&gt;&gt;<br>
&gt;&gt;   -encoding UTF-8<br>
&gt;&gt;   -vm-display-x11<br>
&gt;&gt;   -xshm<br>
&gt;&gt;   -sugarBundleId org.vpri.EtoysActivity<br>
&gt;&gt;   -sugarActivityId c03be0a816bee1440f701b7d3b504b0968cb3274<br>
&gt;&gt;   -vm-sound-pulse<br>
&gt;&gt;<br>
&gt;&gt; These are options that are parsed by the VM executable itself, as opposed<br>
&gt;&gt; to being passed to the Etoys image and evaluated there.<br>
&gt;&gt;<br>
&gt;&gt; I took a look at the VM sources, and see that the -sugarBundleId and<br>
&gt;&gt; the -sugarActivityId parameters will be interpreted by the VM executable<br>
&gt;&gt; if and only if the VM was compiled with Sugar support:<br>
&gt;&gt;<br>
&gt;&gt;   #    if defined(SUGAR)<br>
&gt;&gt;         else if (!strcmp(arg, &quot;-sugarBundleId&quot;))   sugarBundleId= argv[1];<br>
&gt;&gt;         else if (!strcmp(arg, &quot;-sugarActivityId&quot;)) sugarActivityId=<br>
&gt;&gt; argv[1];<br>
&gt;&gt;   #    endif<br>
&gt;&gt;<br>
&gt;&gt; I expect that if the Etoys image is run from a script that specifies those<br>
&gt;&gt; two VM parameters, and if the VM was not compiled without Sugar support,<br>
&gt;&gt; then the command line parameters are probably going to get out of whack.<br>
&gt;&gt; The dictionary that got turned inside out is probably a side effect of<br>
&gt;&gt; this.<br>
&gt;&gt;<br>
&gt;&gt; So my guess is that the script is trying to run a VM for Etoys in the<br>
&gt;&gt; Sugar environment, but the VM that is being run by that script was not<br>
&gt;&gt; compiled with Sugar support enabled.<br>
&gt;&gt;<br>
&gt;&gt; Dave<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt;<br>
<br>
</div></div></blockquote></div><br></div>