This is the mail archive of the cygwin-apps mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

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/ :-)


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]