[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