[squeak-dev] How to get a current clean 4.6 trunk image?

Eliot Miranda eliot.miranda at gmail.com
Tue Aug 5 18:05:11 UTC 2014

Hi Bernhard,

On Tue, Aug 5, 2014 at 10:26 AM, Bernhard Pieber <bernhard at pieber.com>

> I spent quite some time today to figure out how I managed to create my
> up-to-date and clean trunk image from the 4.5 release image yesterday.
> So far I did not succeed. :-(
> What I found out, though, is that the result of loading updates depends on
> the content of the package-cache. If it is empty it results in the „Error:
> Bits size mismatch“. If I close the debugger and load updates again I can
> update until the end. However, the package Environments (nice.46, cmm.51)
> is dirty. The result looks quite like the Jenkins TrunkImage.
> What seems to happen is the following:
> 1. Some code is loaded which breaks mcz file writing.
> 2. That code is used to copy package versions from trunk to the
> package-cache.
> 3. Those mcz and mcd files seem to be corrupt. When you look at the
> version in a version inspector you get the infamous „Error: can't find EOCD
> position"
> I used the following code to find the corrupt files:
> MCCacheRepository default allFileNames select: [:each |
>         [MCCacheRepository default versionInfoFromFileNamed: each.
>         false] on: Error do: [  true]].
> What if I preload the package-cache with the correct version of all
> corrupt files from trunk before I attempt to update?

What OS are you running on?

I don't know if this helps, but, at least on Mac OS X, my image build
script from Cog works to the extent that only Environments and Monticello
are marked dirty.  Note that Monticello is not actually dirty, and
Environments is dirty because it has two ancestors, nice.47 & cmm.51 (as
you report below).  You can find the script here:

                BuildSqueakTrunkImage.st    - the update script
                buildspurtrunkimage.sh          - the script that
downloads Squeak-4.5-All-in-One, updates it to trunk, builds a VMMaker
image, and uses that to convert the trunk image to Spur

"Change the update stream to trunk and update"
        defaultUpdateURL: 'http://source.squeak.org/trunk';
        updateFromServer] valueSupplyingAnswer: true.

Smalltalk snapshot: true andQuit: true

The script has been tested on Mac and Linux.  The update process starts
with an empty package cache.

I identified all corrupt versions, cleared the package-cache and preloaded
> it with the following code:
>  #('Tools-eem.525.mcz' 'ShoutCore-ul.42.mcz' 'Tests-fbs.301.mcz'
> 'SUnit-fbs.100.mcz' 'KernelTests-eem.275.mcz' 'Monticello-eem.594.mcz'
> 'Collections-nice.574.mcz' 'System-eem.676.mcz' 'MorphicExtras-kfr.150.mcz'
> 'Tools-eem.524.mcz' 'Kernel-eem.859.mcz' 'CollectionsTests-eem.219.mcz'
> 'Multilingual-ul.199.mcz' 'Graphics-nice.295.mcz' 'Compression-nice.45.mcz'
> 'SystemReporter-dtl.23.mcz' 'Help-Squeak-Project-dtl.20.mcz'
> 'HelpSystem-Core-kfr.62.mcz' 'Tests-fbs.300.mcz' 'Monticello-eem.593.mcz'
> 'Collections-nice.572.mcz' 'MorphicExtras-kfr.149.mcz' 'Tools-eem.523.mcz'
> 'MonticelloConfigurations-eem.127.mcz' 'Kernel-eem.857.mcz'
> 'Compiler-eem.284.mcz' 'Multilingual-nice.198.mcz' 'Tests-nice.299.mcz'
> 'TraitsTests-nice.14.mcz' 'KernelTests-nice.271.mcz' 'Files-eem.136.mcz'
> 'Collections-eem.571.mcz' 'Tools-eem.522.mcz' 'Kernel-eem.854.mcz'
> 'Compiler-eem.283.mcz' 'CollectionsTests-nice.218.mcz'
> 'Multilingual-nice.196.mcz' 'Compression-nice.42.mcz' 'Kernel-eem.852.mcz'
> 'CommandLine-fbs.3.mcz' 'Kernel-eem.851.mcz' 'Morphic-cmm.730.mcz'
> 'Morphic-kfr.733.mcz' 'Morphic-kfr.729.mcz')
>         do: [:each | MCRepository trunk versionNamed: each].
> After this I can update the 4.5 release image to the last trunk update
> without a debugger and without creating any more corrupt Monticello files.
> However, the package Environments (cmm.51, nice.47) is still dirty, i.e.
> when I select it, the trunk repository and click the Changes button it
> turns up a patch browser.
> In the clean trunk image which I managed to create yesterday the package
> Environments (nice.47, cmm.51) is not dirty.
> Note the different order of the same ancestors (cmm.51, nice.47) versus
> (nice.47, cmm.51). Does anyone have an idea, how that difference might have
> occurred?
> Cheers,
> Bernhard
> Am 05.08.2014 um 11:32 schrieb Bernhard Pieber <bernhard at pieber.com>:
> > Thanks for the update, Chris!
> >
> > I updated my 13899 image from yesterday and now have a fully up-to-date
> trunk image where none of the packages is marked as modified. Yay! (The
> Environments package has two ancestors, though.)
> >
> > That's the good news. The bad news is that I cannot reproduce the
> process how I arrived there anymore. Although I try hard to do exactly the
> same as yesterday, I always run into the "Bits size mismatch" error in
> ZipWriteStream for the package version Morphic-cmm.730.
> >
> > Go figure! ;-(
> >
> > Cheers,
> > Bernhard
> >
> > Am 04.08.2014 um 20:40 schrieb Chris Muller <asqueaker at gmail.com>:
> >> On Mon, Aug 4, 2014 at 10:09 AM, Bernhard Pieber <bernhard at pieber.com>
> wrote:
> >> Thanks for the quick responses! I am getting closer, thanks to Chris'
> suggestion.
> >>
> >> I took Squeak4.5-13680.zip from ftp://ftp.squeak.org/4.5/ with all
> updates from squeak4.5 applied. That is update 13687.
> >>
> >> Then I emptied the package-cache, changed the update URL to trunk and
> did "Update Squeak".
> >>
> >> It updates to 13889. Package Environments is not dirty anymore. Its
> version number is (cmm.51, nice.47). Is that a problem or not? Shouldn't
> trunk packages always have exactly one version name?
> >>
> >> Yes, they should.  Nicolas branched nice.47 off of ul.46 to fix the
> update stream.  Someone should probably resave Environments again, Nicolas?
> >>
> >>
> >> However, package Morphic is now dirty. Its version name is (kfr.733,
> cmm.738). The patch browser shows only two changes.
> >>
> >> Strange -- I could've sworn I merged Nicolas' changes.  I saved it
> again, this one should be cleared up.
> >

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.squeakfoundation.org/pipermail/squeak-dev/attachments/20140805/7f4758d3/attachment.htm

More information about the Squeak-dev mailing list