[squeak-dev] Fixing the update stream for squeak45
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
> 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
> 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.
More information about the Squeak-dev