[Vm-dev] Ubuntu 20.04 build steps after opensmalltalk-vm clone.

Robert Withers robert.withers at pm.me
Mon May 25 18:51:06 UTC 2020


Hi Eliot,

On 5/25/20 2:29 PM, Eliot Miranda wrote:

> Hi Rob,
>
> On Mon, May 25, 2020 at 10:25 AM Robert Withers <robert.withers at pm.me> wrote:
>
>>
>>
>> Hey,
>>
>> As I had changed a couple of scripts in the vm/image directory, something was bugging me about them. I took a long look at what git was pushing and made some changes. I am attaching the changed/new files. What steps could I take to publish on a branch in git? For review. My git skills are rusty and there is a policy issue for how you all proceed here. I am on Cog branch atm.
>>
>> A few issues,
>>
>> - when UpdateSqueakTrunkImage.st, there are two changesets requiring a merge. I click Rest Accept and then click Merge, to get past them. It would be really good to be able to auto-merge when updating the trunk image, for CI and such. Is it possible?
>>
>>> - Merging Tools-eem.959
>>> - Merging Morphic-mt.1653
>>
>> - The PreferenceWizard was not open in the resulting images. I added a SetPreferenceWizardMorph.st squeak script to restore and collapse any Workspaces (VMMaker) and close any transcripts. Works for both spur64 & vmmaker64 scripts.
>> - The getGoodSpurVM.sh (32-bits) is not working on my 64-bit system. Should it? Can I do 32-bits on a 64-bit OS?
>
> No guarantee.  MacOS is dropping support from 32-bits.  So best to use a 64-bit toolchain on a 64-bit OS and a 32-bit toolchain on a 32-bit OS.

Oh dear, that's unfortunate. Would have been nice to test 32-bits.

>> - The scripts for building the spur64image was occurring in the update script. The buildspurtrunk64image.sh (I think it was called), is actually a migratespur32to64vmmakerimage.sh, so I renamed it. It doesn't work due to #3.
>
> (Notice the auto renumber bug) Now that a 64-bit release is available we should probably apply UpdateSqueakTrunkImage.st to it and avoid the image rewrite.

My apologies, I don't know what this means. The buildspur64image.sh script is running UpdateSqueakTrunkImage.st and avoids a re-retrieval of the latest 64 bit image, as the image is already here. The only rewrite occurs in buildvmmaker64image.sh when the Spur64VMMaker.image is absent. Once again the buildspur64image.sh, called from there, only retrieves if the trunk6-64.image is missing. This buildvmmaker64image.sh also does a UpdateSqueakTrunkImage.st on the Spur64VMMaker.image. Those calls to UpdateSqueakTrunkImage.st happen every time a buildspur64image.sh/buildvmmmaker64image.sh is evaluated.

>> - The scripts for building the vmmaker64image was occurring in the build script. The two sets of scripts (spur64 & vmmaker64) were opposite. spur64 was building in the update script and vmmaker was building in the build script. I liked the way the spur64 was being built so I made the vmmaker build happen in the update script, like spur64.
>> - Then I decided that the update scripts were doing building and the building wass also doin gan update. So I renamed everything and now the #build scripts for spur64 and vmmaker are the scripts that both build and update the image (trunk6-64 or Spur64VMMaker). The update scripts simply call the build script.
>> - I renamed buildspurtrunkvmmaker64image.sh & buildspurtrunkvmmakerimage.sh to buildvmmakerimage.sh and buildvmmaker64image.sh
>> - I made all the 32 bit scripts, for spur & vmmaker, look like the 64 bit scripts. Due to #3, I cannot test.
>>
>> I think this is everything I ventured into and changed, based on a "ll -t". I realize I changed the way vmmaker/64 images are built, and also spur/64 images. I tried testing all combos and they worked. Don't really need the #update scripts anymore. Please let me know if you accept these and help me commit&push.
>
> Can you push on a branch? Then I can take a look...

Can I branch off Cog after having made changes and have those changes follow into the new branch? This is my concern. So,

> - "git branch -c rabbits" - *check*
> - "git checkout rabbits" - *check*
> - "git add ...", "git add ...", ***add all new/changed files*** - *check*
>
> ...
>
> - "git log ???" ***validate local changes***
> - "git commit -m ' scripts updated' "
> - "git push"

Or somehow? How can I check the my immediate changes in the log?  That will be committed? I tried "git log" and it had all changes since the first big bang.

K, r

>> I appreciate all'y'all for all y'all do!
>>
>> Kindly,
>> Rabbit
>>
>> On 5/24/20 4:23 PM, Robert Withers wrote:
>>
>>> Hey everyone,
>>>
>>> I just reinstalled my OS and erased my disk to get it to work right. A few issues that downgrading the version helps: LibreOffice, Adobe Acroread, Facebook Messenger clone called Caprine. These all required special versions.
>>>
>>> Then I clone the opensmalltalk/vm, and proceed...
>>>
>>> Image generation for VMMaker
>>>
>>> I thought I would explain what I had to do to generate all sources and build a working build.linux64x64/squeak.cog.spur VM.
>>>
>>> In /image I had to add the following scripts or update existing ones, I forget. We definitely need these two scripts:
>>>
>>>> - buildspurtrunk64image.sh
>>>> - updatevmmaker64image.sh
>>>
>>> With running these I was able to come up with a Spur64VMMaker.image, with latest loaded. I modified the in-image VMMaker method #generateVMPlugins to reflect the new Cryptography plugins:
>>>
>>>> - "Cryptography Plugins:" DESPlugin DSAPlugin MD5Plugin SHA2Plugin
>>>
>>> The method version with the clone has a reference to SHA256Plugin which is no longer apropos.
>>>
>>> I generate the vm and plugins.
>>>
>>> Building dependencies
>>>
>>> From the HowToBuild in the linux64x64 directory, I ran the following for installing support libraries for my brand new Ubuntu 20.04 OS:
>>>
>>>> - sudo apt-get install uuid-dev libcairo2-dev libpango1.0-dev libgl1-mesa-dev libgl1-mesa-glx libssl-dev
>>>
>>> In addition, my new shiny OS needed clang installed so I also ran:
>>>
>>>> - sudo apt-get install clang
>>>
>>> Running mvm:
>>>
>>> First, I needed to update the plugins.ext file to reflect the new Cryptography plugins. I am attaching that file.
>>>
>>> Finally, I am ready to build. Go to build.linux64x64/squeak.cog.spur/build/. I run the following:
>>>
>>>> - build.linux64x64/squeak.cog.spur/build/$ .mvm > ../mvm.log
>>>> - and after running I type Y and return to cause the script to make clean. (The clean? prompt is hidden given the stdout redirection. See it in the log).
>>>
>>> Once the VM and Plugins are generated, I installed to my system by typing:
>>>
>>>> - build.linux64x64/squeak.cog.spur/build/$ sudo make install
>>>
>>> Now squeak is installed in my machine and I can run the following:
>>>
>>>> - image/$ squeak Spur64VMMaker.image &
>>>> - then save as rabbit.image
>>>
>>> For my purposes, I now load my Crypto stuff and run all tests:
>>>
>>>> - Installer ss
>>>>     project: 'Cryptography'; install: 'ProCrypto-1-1-1';
>>>>     project: 'Cryptography'; install: 'ProCryptoTests-1-1-1';
>>>>     project: 'Cryptography'; install: 'SSLLoader'.
>>>
>>> Now I can pass all Crypto and ParrotTalk tests. SSL is still failing, expectedly.
>>>
>>> Well I think this is accurate enough. As I have gone through all of this, already, I do not relish trying to replicate my steps. Hopefully the other Ubuntu heads out there will have success!
>>>
>>> Kindly,
>>> Rabbit
>
> _,,,^..^,,,_
> best, Eliot
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.squeakfoundation.org/pipermail/vm-dev/attachments/20200525/c28fabf7/attachment-0001.html>


More information about the Vm-dev mailing list