On Tue, Oct 21, 2008 at 12:03:52AM +0400, Dmitry V. Levin wrote: > > По hsh-install gcc-c++ в чрут почему-то ставиться gcc4.1-c++, а не > > gcc4.3-c++. Это у меня локальные проблемы или так и задумано? > > Это потому, что в hasher repo уже есть свой gcc4.3-c++. Я собрал у себя локально в hasher repo пакеты binutils и gcc4.3 (и пока ещё не синхронизировал сизиф с новым тулчейном). Получается такая бяка, что у всех пакетов gcc4.x-c++ одинаковый score, равный нулю. К тому же qsort, в таком случае, может переупорядочить пакеты. Хотя вроде бы не переупорядочивает. Вероятно, дело в том, что в glibc реализация qsort на коротких последовательностях делает mergesort. А mergesort является стабильным. Вот на каких соплях иногда всё висит! --- apt-get.cc- 2008-10-21 03:29:54 +0000 +++ apt-get.cc 2008-10-22 05:33:34 +0000 @@ -1251,8 +1251,15 @@ bool TryToInstall(pkgCache::PkgIterator for (pkgCache::PrvIterator Prv = Pkg.ProvidesList(); Prv.end() == false; Prv++) *PEnd++ = Prv.OwnerPkg(); Fix.MakeScores(); + for (unsigned int p=0; pID]); + } qsort(PList,PEnd - PList,sizeof(*PList),&(Fix.ScoreSort)); - + for (unsigned int p=0; pID]); + } for (unsigned int p=0; pFindB("APT::Install::Virtual", false); apt-0.5.15lorg2/cmdline $ PATH=$PWD:$PATH ~tmp/build/aptbox/apt-get --dry-run install gcc-c++ ... 0 gcc4.1-c++ 0 1 gcc3.4-c++ 0 2 gcc4.3-c++ 0 0 gcc4.1-c++ 0 1 gcc3.4-c++ 0 2 gcc4.3-c++ 0 Selecting gcc4.1-c++ for 'gcc-c++' ... apt-0.5.15lorg2/cmdline $ > Чтобы этот глюк apt'а преодолеть, достаточно добавить > gcc4.3-c++ > в секцию Standard файла /etc/apt/pkgpriorities (или его локального > аналога, определённого с помощью Dir::Etc::pkgpriorities).