[devel] распиливание mono [2]
Alexey Tourbin
=?iso-8859-1?q?at_=CE=C1_altlinux=2Eru?=
Вс Ноя 11 02:55:19 MSK 2007
On Wed, Nov 07, 2007 at 04:50:56PM +0300, Alexey Shabalin wrote:
> > Я взялся за сборку mono. Отчасти это вызвано необходимостью пересборки
> > mono с новым rpm-build-mono. Я также изменю некоторые зависимости, но
> > распил пакетов пока всерьез менять не собираюсь. Результат будет
> > представлен на обсуждение.
>
> так может и распилим сразу совместными усилиями?
> я тоже подключусь.
Чтобы грамотно распилить mono, нужно сделать граф зависимостей
по отношению частичного порядка между моновскими библиотеками.
Идея тут в том, что нужно решить некую задачу оптимизации --
минимизировать число зависимостей между пакетами и, вместе
с тем, минимизировать число пакетов, и, вместе с тем, минимизировать
размеры пакетов. Мне кажется, что эта задача не решается через
математику "в лоб" (типа записать какой-нибудь лагранжиан и т.п.).
Вот как примерно можно построить граф зависимостей для случая
с питоном. Я заметил, что несколько питоновских пакетов ставится
в большинстве случаев одновременно. Я хочу понять, как перетасовать
модули между этими пакетами, чтобы каждый из этих пакетов был более
"подвижным" относительно python-base.
Последовательность команд примерно такая:
$ rpm -ql python-base python-modules python-modules-{xml,logging,compiler,email} |grep '\.py$' |
while read f; do prov=`/usr/lib/rpm/python.prov $f`; [ -n "$prov" ] || continue;
/usr/lib/rpm/python.req $f 2>/dev/null |sed "s/^/$prov /"; done >topo
$
Здесь получился список вида
python2.4(A) python2.4(B)
питоновский модуль A требует питоновский модуль B.
Дальше составляется *.dot файл и можно нарисовать граф.
$ (echo 'Digraph G {'; awk 'NF=2{print$1" -> "$2";"}' topo |sed 's/python2\.4//g;s/[()]//g' ; echo '}') >topo.dot
$ dot -Tgif topo.dot -o topo.gif
В общем, более грамотный распил пакетов, будь то python или mono,
тянет на некий research.
----------- следующая часть -----------
Было удалено вложение не в текстовом формате...
Имя : =?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/20071111/40cb0f25/attachment-0002.bin>
Подробная информация о списке рассылки Devel