NAnt boostrapping

Christopher Brown snecklifter at gmail.com
Wed Feb 24 18:25:17 UTC 2010


Hi,

On 24 February 2010 16:52, Kalev Lember <kalev at smartlink.ee> wrote:
> On 02/24/2010 03:13 AM, Tom "spot" Callaway wrote:
>> On 02/23/2010 08:10 PM, Christian Krause wrote:
>>> Hello Tom,
>>>
>>> there is currently some uncertainty about bootstrapping NAnt correctly
>>> and since you've done is a couple of times I thought it would be a good
>>> idea just to ask. ;-)
>>>
>>> https://bugzilla.redhat.com/show_bug.cgi?id=562729
>>>
>>> If I understood this correctly, it should be done like this:
>>>
>>> 1. build nant with bootstrap=1, get it tagged into buildroot
>>> 2. build log4net, mono-sharpcvslib, get both tagged into buildroot
>>> 3. finally build nant with bootstrap=0
>>> 4. push all new builds
>>>
>>> I'm also unsure whether mono-nunit22 must be built and tagged in step 2
>>> as well.
>>>
>>> Please can you shed some light on this process? ;-)
>>
>> I don't think that whole bootstrapping is necessary anymore, with the
>> new key arrangement, but kalev would be able to shed some light there.
>
> I think all nant dependencies use the system mono.snk key for F-13 and
> up, but in F-12 the packages are (mostly) built with snk keys that were
> generated on the fly and then discarded. The discarded part is
> important, because it's not possible to sign next build with the key we
> don't have. Mono's GAC needs updated assemblies signed with the same
> key, otherwise it will refuse to load them.
>
> The root cause why nant broke again was that log4net was rebuilt with a
> new key. Yes, the new key is the new system mono.snk -- but it's still
> different from the previous key, therefore breaking all dependent
> applications.
>
> Paul rebuilt nant in bootstrap mode, and had it tagged for
> dist-f12-override [1]. He also tried to build a new nant in
> non-bootstrap mode, but that failed because one of nant's deps,
> mono-sharpcvslib, failed to load log4net from GAC.
>
> I picked it up from there. I first checked that there were only 2
> packages that depended on log4net: nant and mono-sharpcvslib. However,
> what made it slightly difficult is that mono-sharpcvslib needs nant to
> build, but nant was broken. Luckily the bootstrap mode nant was already
> tagged for dist-f12-override. What I had to do was rebuild
> mono-sharpcvslib against the new log4net (using the boostrap mode nant
> which was tagged into build overrides). When mono-sharpcvslib's build
> finished, I had it tagged for dist-f12-override [2].
>
> At that point all nant's deps were in working order, so I just
> re-submitted latest nant build which had failed for Paul. After that I
> had the new nant also tagged for dist-f12-override, so that other
> packages which use nant can now be built.
>
> What needs to be done is to create a Bodhi update which includes both
> mono-sharpcvslib-0.35-14.fc12 and nant-0.85-33.fc12. I don't have commit
> access to nant, and because of that I can't create the update myself.
> Christian, do you think you could prepare the update?

I rebuilt log4net for various reasons and don't have commit on nant
either otherwise I would have dropped the bootstrapping now that the
latest version of mono is in F-12 which supplies a common strong name
key.

Essentially I think we can drop the bootstrapping now we are rid of
the nant/log4net cyclic dep. The only question is whether to provide a
sub package in mono that provides the snk and how to deal with it?

-- 
Christopher Brown


More information about the mono mailing list