[devel] I: repocop test for %{get_version ...} is disabled.
Alexey Tourbin
at на altlinux.ru
Пт Авг 24 04:40:15 MSK 2012
On Thu, Aug 23, 2012 at 07:26:50PM +0400, Sergey V Turchin wrote:
> > Для libqt4-core set-версии хорошо очерчивают круг совместимых версий.
> > С интересом рассмотрю контрпримеры.
> Я не имел ввиду libqt4-core, но я лично наблюдал пример, где программа падала,
> хотя, с set-зависимостью было все в порядке. Если надо, укажу конкретно.
Программа может падать из-за разыменовывания нулевого указателя.
Set-версии дают гарантию, что перед запуском программы имеются в наличии
все вызываемые функции. (Следующий бастион - set-версии должны
гарантировать, что прототипы вызываемых функций соответствуют вызовам,
но для C++ это уже сейчас гарантируется автоматически из-за mangling.)
То есть set-версии дают гарантию, что то, что мы собираемся запустить,
в каком-то смысле вообще запускаемо. То, что программа не будет падать,
set-версии гарантировать не могут.
Конкретный пример меня всё еще интересует, если станет ясно, что там
случилось. Почему программа падала, а не сам факт падения.
> > > > а какую тогда гарантию формально дает %get_version?
> > >
> > > Немного другую, которой в set-версиях нет, т.к. они применимы не только к
> > > ABI, но и к API и к noarch.
> >
> > Иногда стоит указать зависимость вручную - с минимальной версией,
> > но привязка к текущей версии - это просто-таки дедовский метод конторля,
> > да, не только ABI, но и API. Достойный старых обезьян.
> Ну да. К тому же еще и ленивых ;-)
Laziness is a virtue. :-)
Вся разница в том, что %get_version - это довольно толстый метод привязки
к текущей версии, а set-versions - это гораздо более тонкий метод привязки
к текущей версии. :-)
> --
> Regards, Sergey. ALT Linux, http://www.altlinux.ru/
Подробная информация о списке рассылки Devel