[devel] оптимизация сборочных зависимостей
Alexey Tourbin
=?iso-8859-1?q?at_=CE=C1_altlinux=2Eru?=
Вс Сен 3 14:57:14 MSD 2006
On Sun, Sep 03, 2006 at 08:36:15AM +0400, Alexey Tourbin wrote:
> 1) Низкоуровневый подход (в меньшей степени). Добавить и использовать
> специальную опцию в packageof. Для каждого заданного файла, помимо
> того, чтобы пробивать его по rpmdb, нужно специальным образом
> обрабатывать симлинки. А именно, для каждого симлинка делать realpath()
> и полученный путь ещё раз пробивать по rpmdb.
>
> Какой недостаток у этого подхода? Это вопрос философский. :)
> То есть недостаток довольно тонкий -- настолько тонкий, что не является
> препятствием для реализации, но непременно подлежит обсуждению.
>
> Речь идет о том, что при использовании симлинка используется не cтолько
> сам симлинк, сколько файл, на который показывает симлинк (симлинк и файл
> могут находится в разных пакетах). При этом симлинк может показывать,
> вообще говоря, куда угодно. Я ведь исхожу из того, что мы достраиваем
> цепочку "вовнутрь", то есть вглубь дерева, а симлинк можеть дать
> результат и "вовне". Здесь можно представить себе альтернативы.
> То есть можно на выходе получить слишком специфические зависимости.
Вот типичная ситуация, в которой проявляется этот недостаток.
/usr/lib/rpm/brp-bytecompile_python:
27 if [ -n "$RPM_PYTHON" -a -x "$RPM_PYTHON" ] && [ `find -type f -name \*.py |wc -l` -gt 0 ]; then
28 echo "Bytecompiling python modules in $PWD using $RPM_PYTHON"
Здесь делается stat (точнее, access) на /usr/bin/python. Этот файл
не принадлежит ни одному из пакетов. Но если следовать правилу
"требование на симлинки распространяется также на файлы, на которые
показывают симлинки", тогда при использовании buildreq -bi в
BuildRequires появится зависимость на текущий питон, установленный
в системе.
Поэтому задача усложняется: не следует применять это правило для
системных вызовов stat, lstat и access. Альтернативный вариант:
правильно не следует приминять, если симлинк не принадлежит какому-либо
пакету.
----------- следующая часть -----------
Было удалено вложение не в текстовом формате...
Имя : =?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/20060903/4913ecf4/attachment-0001.bin>
Подробная информация о списке рассылки Devel