[squeak-dev] Fixing the update stream for squeak45

Levente Uzonyi leves at elte.hu
Wed Nov 12 05:25:59 UTC 2014


On Tue, 11 Nov 2014, David T. Lewis wrote:

> On Tue, Nov 11, 2014 at 10:17:11PM -0500, David T. Lewis wrote:
>> On Tue, Nov 11, 2014 at 09:43:54PM -0500, David T. Lewis wrote:
>>> I tried updating a Squeak 4.5 image with the default squeak45 update stream
>>> (http://source.squeak.org/squeak45). The update fails and locks up the image,
>>> not a good impression for new users.
>>>
>>> The cause appears to be a corrupt copy of one of the MCZs in squeak45:
>>>
>>> -rw-r--r--  1 squeaksource squeaksource  72368 Feb  4  2014 squeak45/System-dtl.665.mcz
>>> -rw-r--r--  1 squeaksource squeaksource 903249 Jan 30  2014 trunk/System-dtl.665.mcz
>>>
>>> The one in squeak45 is empty when viewed in a Monticello browser. The one
>>> in trunk if fine.
>>>
>>> Presumably this was some sort of error introduced in copying the MCZ from
>>> trunk to squeak45.
>>>
>>> I will fix this by copying the good MCZ from trunk to squeak45 using a
>>> Monticello browser.
>>>
>>
>> Having done that, the next (and final) squeak45 update to System-dtl.666 fails
>> due to an undefined EnvironmentRequest referenced in MCClassDefinition>>createClass.
>>
>> I believe that adding Monticello-cwp.589 to the squeak45 repository will
>> fix the problem:
>>
>>   Name: Monticello-cwp.589
>>   Author: cwp
>>   Time: 22 March 2014, 7:59:40.107 pm
>>   UUID: 46fa1e2f-2bf7-4950-82b1-1db31d5753f8
>>   Ancestors: Monticello-cmm.588
>>
>>   Rename EnvironmentRequest to CurrentEnvironment.
>>
>> I am not sure if this will require an update to the config maps, but I will
>> first copy Monticello-cwp.589 from trunk to squeak45 and see if that is
>> sufficient.
>
> Indeed, the config maps will need an update. I think that the right way to
> do it is to modify the existing update-cmm.282.mcm to specify the required
> Monticello-cwp.589, and to move that Monticello dependency up in the list
> before the System dependency so that Monticello-cwp.589 is loaded prior to
> System-dtl.665.
>
> I am not certain if this is the right way to update the configuration, so
> I will make no further changes tonight.

It's risky to change the order of packages in a configuration map, 
because it can break the load order of some packages.
For example if I want to make sure that Kernel-ul.123 is loaded before 
System-ul.456, and the current configuration map loads Kernel before 
System, then I won't create a new configuration map.
But if someone uploads a new configuration map with Kernel and System 
swapped in it, then the update process will be broken. This can only be 
detected if one starts from the previous config map, and even then there 
may be no easily detectable sign of the breakage.

So I think the order of packages should not be changed in the 
configuration map, unless all dependencies of the packages between the two 
maps are kept.

Levente

>
> Dave
>
>
>


More information about the Squeak-dev mailing list