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: New Setup for Cygwin 1.7 on cygwin.com


On Mon, Aug 25, 2008 at 12:26:02PM +0200, Corinna Vinschen wrote:
>On Aug 22 11:09, Corinna Vinschen wrote:
>> On Aug 22 01:58, Brian Dessent wrote:
>> > Corinna Vinschen wrote:
>> > 
>> > > Why didn't upset pick up the change?
>> > 
>> > Perhaps it has to do with the design of upset being incremental, i.e.
>> > taking the current setup-2.ini as input and applying updates to it
>> > rather than generating it from whole each time.  It might be confused
>> > upon not seeing a "requires:" at all in the .hint and so it leaves the
>> > existing "requires:" in the .ini unchanged.  If this is the case then
>> > listing an explicit empty "requires:" in the .hint would probably work
>> 
>> I tried that and it helped.
>
>Still no go.  I checked setup-2.ini and it looks almost correct now.
>Still, the order in setup is screwed:
>
>warning: LOG: 1 Dependency order of packages: libintl3 texinfo
>_update-info-dir gawk tzcode libiconv2 coreutils terminfo libncurses8
>libreadline6 bash base-cygwin base-passwd cygwin libintl8 alternatives
>ash findutils sed base-files libbz2_1 bzip2 libpopt0 cygutils groff
>gzip termcap libpcre0 less man cygwin-doc editrights grep ipc-utils
>login rebase run tar which
>
>I checked the requirements again and tried to do my own hand-crafted
>dependency ordering with the least set of depending packages.
>
>base-cygwin     : NO requires
>base-passwd     : base-cygwin
>cygwin          : base-passwd base-cygwin
>libiconv2       : cygwin
>libintl8        : cygwin libiconv2
>libreadline6    : cygwin libncurses8
>bash            : cygwin libintl8 libreadline6 (NO _update-info-dir)
>libintl3        : cygwin libiconv2
>gawk            : bash cygwin libintl8 _update-info-dir
>tzcode          : cygwin bash gawk
>coreutils       : bash cygwin libiconv2 libintl8 tzcode _update-info-dir
>terminfo        : bash coreutils
>libncurses8     : cygwin terminfo
>texinfo         : cygwin libiconv2 libintl3 libncurses8 (NO _update-info-dir)
>_update-info-dir: texinfo bash
>
>As you can see, there are four loops:
>
>  bash -> libreadline6 -> libncurses8 -> terminfo -> bash
>
>  bash -> libreadline6 -> libncurses8 -> terminfo -> coreutils -> bash
>
>  _update-info-dir -> texinfo -> libncurses8 -> terminfo
>  -> coreutils -> _update-info-dir
>
>  _update-info-dir -> texinfo -> libncurses8 -> terminfo
>  -> coreutils -> tzcode -> gawk -> _update-info-dir
>
>The crucial package here is apparently terminfo.  The dependency
>to bash and coreutils is based on a really tiny script which tries
>to create a symlink /usr/lib/terminfo pointing to /usr/share/terminfo.
>If the terminfo package would bring this symlink right in the tar
>file, the postinstall script could go away, and the dependencies
>to bash and coreutils with it.  If terminfo doesn't depend on bash
>and coreutils, the dependency order would be changed to:
>
>base-cygwin     : NO requires
>terminfo        : NO requires
>base-passwd     : base-cygwin
>cygwin          : base-passwd base-cygwin
>libncurses8     : cygwin terminfo
>libiconv2       : cygwin
>libintl8        : cygwin libiconv2
>libreadline6    : cygwin libncurses8
>bash            : cygwin libintl8 libreadline6 (NO _update-info-dir)
>libintl3        : cygwin libiconv2
>texinfo         : cygwin libiconv2 libintl3 libncurses8 (NO _update-info-dir)
>_update-info-dir: texinfo bash
>gawk            : bash cygwin libintl8 _update-info-dir
>tzcode          : cygwin bash gawk
>coreutils       : bash cygwin libiconv2 libintl8 tzcode _update-info-dir
>
>which is a neat tree without loops.
>
>I'm nevertheless wondering about the dependency algorithm in setup.
>From a "common sense" perspective, one would expect that the fact that
>all packages depend on cygwin should have *some* effect.  The above
>result looks rather unstable.  I'm under the impression the algorithm
>isn't quite complete.

It looks that way.

Making tweaks by removing valid dependencies in the hopes of improving
things is not going to be a win in the long run.  We seem to be in a
situation that is only solvable by changing setup.exe.

cgf


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