This is the mail archive of the
cygwin-apps
mailing list for the Cygwin project.
Re: Unbelievably obscure setup bug
On 19/11/2010 14:20, Jon TURNEY wrote:
> On 19/11/2010 13:36, Corinna Vinschen wrote:
>>
>> In theory base-cygwin has no dependecies. Here are the setup.hint
>> snippets:
>>
>> base-cygwin:
>>
>> category: Base
>>
>> base-passwd:
>>
>> requires: base-cygwin
>> category: Base
>> noautodep: cygwin
>>
>> cygwin:
>>
>> requires: base-passwd base-cygwin
>> noautodep: _update-info-dir
>>
>> I think that explains it. The problem in base-cygwin is that it depends
>> on cygwin since the "noautodep: cygwin" is missing. So there's a
>> dependency chain which goes "base-cygwin -> cygwin -> base-passwd".
>> That's how this order is generated. If we add "noautodep: cygwin" to
>> base-cygwin, it would really have no dependency and should always become
>> the first package.
>
> I wasn't aware of the existence of noautodep. Now it all makes sense :-)
>
> If everything else depends on cygwin, I think that should give the correct
> ordering without any special casing?
I did some tests with these special cases in ConnectedLoopFinder::doIt()
removed, which seemed to give the required postinstall scripts order
('base-cygwin base-passwd cygwin'), except that libgcc can appear before that.
In the current setup.ini, libgcc1 has no requires: line. I don't understand
why that is, it has a empty requires: in it's setup.hint and no noautodep, so
it should automatically be given a dependency on cygwin?
> If not, you perhaps might want to tweak the comment to indicate the order
> which is required, and note that we rely base-cygwin and base-passwd having no
> unvisited dependencies to get the required ordering.
s/you perhaps might/I should/ :-)