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 13:36, Corinna Vinschen wrote:
> On Nov 19 13:23, Jon TURNEY wrote:
>> On 19/11/2010 13:13, Corinna Vinschen wrote:
>>> The code in question was supposed to make sure that the order is always
>>> "base-cygwin base-passwd [...]" and that was the case so far.  Of
>>> course, given the obvious mishandling of the casecompare return value
>>> it's not clear why this ever worked.  Even more mysterious is the fact
>>> that the bugfix *breaks* this order.  Well, time to debug...
>> Well, the bugfix breaks the order because visit() on "base-cygwin" inserts it
>> and all it's dependencies depth-first (ignoring loops).
> 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?

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.

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