[devel] [PATCH] apt virtual packages

Alexey Tourbin =?iso-8859-1?q?at_=CE=C1_altlinux=2Eru?=
Ср Дек 20 20:25:09 MSK 2006


On Sun, Dec 17, 2006 at 04:43:40PM +0300, Alexey Tourbin wrote:
> Этот патч был неправильным, потому что версии в ProvidesList на самом
> деле не отсортированы.  Вот правильный вариант патча (прицеплен).

В принципе этот патч почти хороший.  То есть его можно брать в очередную
сборку.

Есть другая идея.  В TryToChangeVer можно теперь вызывать не Find(),
который вернет наилучшую версию, а новый FindAll(), и применять к нему
технику &(Fix.ScoreSort).

Ну в общем это техника не совсем родная для апта, она содержится
в apt-0.5.15cnc6-alt-virtual-scores.patch.  Что-то я уже не понимаю что
у апта родное а что кто-то из нас добавил года три назад.

В общем смысл в чем.  Сейчас как происходит: когда просим ставить пакет
без версии, тогда вызывается Fix.ScoreSort.  А когда просим ставить
пакет с версией, тогда уже никакого ScoreSort нет.  Простейший вариант --
при попытке ставить виртуальный или реальный пакет с версией ставить
всегда реальный пакет с наибольшей реальной версией, удовлетворяющей
зависимость по требуемой версиеи.  Это то что сделано в [PATCH].  Второй
вариант -- ввести ScoreSort в TryToChangeVer.

В общем-то по идее НЕ надо делать различия между виртуальными и
реальными пакетам.  Одна и та же зависимость может разрешаться в N
реальных пактов и M виртуальных пакетов.  Тогда что делать?

Я тут думал о теории графов но на самом деле графа-то как такового нет.
Если нельзя однозначно сконструировать матрицу инциденций тогда это уже
не граф.
----------- следующая часть -----------
Было удалено вложение не в текстовом формате...
Имя     : =?iso-8859-1?q?=CF=D4=D3=D5=D4=D3=D4=D7=D5=C5=D4?=
Тип     : application/pgp-signature
Размер  : 189 байтов
Описание: =?iso-8859-1?q?=CF=D4=D3=D5=D4=D3=D4=D7=D5=C5=D4?=
Url     : <http://lists.altlinux.org/pipermail/devel/attachments/20061220/ebe1733d/attachment-0001.bin>


Подробная информация о списке рассылки Devel