On Nov 11 12:53, Corinna Vinschen wrote: > On Nov 10 22:33, Yaakov Selkowitz wrote: > > On 2014-11-10 22:23, Yaakov Selkowitz wrote: > > >Dependency order of packages: libgcc1 base-cygwin cygwin dash tzcode > > >libstdc++6 terminfo sed gzip libpcre1 grep libreadline7 bash > > >libncursesw10 > > [snip] > > > > Now that I think about it, regardless of libgcc1, that still doesn't make > > much sense. sed, grep, and bash depend on libintl8, which depends on > > libiconv2, and libreadline7 (which is required by bash) itself depends on > > libncursesw10, so that should be at least two places earlier. All of those > > dependencies are listed in setup.hint (and hence setup.ini), so is there > > something wrong with setup itself? > > What about dependency loops? > > AFAICS, coreutils depends on tzcode, tzcode depends on coreutils. Both > depend on libgcc1. This introduces a big problem in dependency > resolution because there's no unambiguous starting point. > > What if we remove the coretuls dep from tzcode. > > Or, actually, what if we make sure that Base packages only depend > on libs, but never on any other Base package?
Ok, now after a collegue of mine informed me about the existence of tsort (*blush*), I could finally produce some more info about loops in our dependencies. I wrote a simple script: awk '/^@ /{ left=$2; } /^requires: /{ for (i=2; i<=NF; ++i) print left " " $i; } ' < setup.ini | tsort It found the following dependency loops which have to be fixed. Most notably are the dep loops of _autorebase and _update-info-dir, which we'll fix ASAP. GConf2 -> libgconf2_4 -> gconf-desktop-schemas -> GConf2 xf86-video-dummy -> xorg-server -> xf86-video-dummy xf86-video-nested -> xorg-server -> xf86-video-nested texlive -> texlive-collection-basic -> texlive libautotrace3 -> libMagickCore5 -> libautotrace3 libgeoclue0 -> geoclue -> libgeoclue0 shared-mime-info -> libglib2.0_0 -> shared-mime-info libatspi0 -> at-spi2-core -> libatspi0 libfam0 -> gamin -> libglib2.0_0 -> libfam0 gsettings-desktop-schemas -> libglib2.0_0 -> gsettings-desktop-schemas libdbus1_3 -> dbus -> libdbus1_3 php-Archive_Tar -> php-PEAR -> php-Archive_Tar autogen -> libopts-devel -> autogen python-libxslt -> python-libxml2 -> python-libxslt libopenldap2_4_2 -> libsasl2_3 -> libopenldap2_4_2 perl-Mozilla-CA -> perl-IO-Socket-SSL -> perl-Mozilla-CA rubygems -> ruby-io-console -> ruby -> rubygems ruby-rake -> rubygems -> ruby-rake ruby-rdoc -> rubygems -> ruby-rdoc ruby-rdoc -> rubygems -> ruby-io-console -> ruby -> ruby-rdoc mingw64-i686-runtime -> mingw64-i686-gcc-core -> mingw64-i686-runtime mingw64-x86_64-runtime -> mingw64-x86_64-gcc-core -> mingw64-x86_64-runtime _autorebase -> rebase -> sed -> libintl8 -> libiconv2 -> libgcc1 -> _autorebase _autorebase -> rebase -> coreutils -> libgmp10 -> _autorebase tesseract-ocr-eng -> tesseract-ocr -> tesseract-ocr-eng openmpi -> libopenmpi -> openmpi _autorebase -> rebase -> grep -> libpcre1 -> _autorebase _autorebase -> rebase -> grep -> bash -> libreadline7 -> libncursesw10 -> libstdc++6 -> _autorebase _update-info-dir -> bash -> _update-info-dir _update-info-dir -> bash -> coreutils -> _update-info-dir _update-info-dir -> info -> _update-info-dir Corinna -- Corinna Vinschen Please, send mails regarding Cygwin to Cygwin Maintainer cygwin AT cygwin DOT com Red Hat
pgpfhw4MAZA3B.pgp
Description: PGP signature