[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