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 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.


Corinna

-- 
Corinna Vinschen                  Please, send mails regarding Cygwin to
Cygwin Project Co-Leader          cygwin AT cygwin DOT com
Red Hat


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