[devel] I: repocop test for %{get_version ...} is disabled.

Alexey Tourbin at на altlinux.ru
Чт Авг 23 00:53:34 MSK 2012


On Wed, Aug 22, 2012 at 10:56:49PM +0300, Igor Vlasenko wrote:
> Уважаемые коллеги,
> по поводу макроса get_version в spec-файлах.
> В свое время Алексей реализовал set:versions, 
> и тогда в devel@ были заявения, что теперь с set:versions %get_version
> не нужен и его пора удалять,
> в результате чего я даже написал тест репокоп, который удаляет в spec-файлах
> макрос get_version, как, например, в
> http://repocop.altlinux.org/pub/repocop/reports/diff/by-acl/zerg/poppler26-0.20.2-alt1.diff

-Requires: libqt4-core >= %{get_version libqt4-core}
+Requires: libqt4-core

Надо было удалять всю зависимость на libqt4-core, а не только %get_version.

> Пыль осела, и начал сомневаться, а нужно ли удалять %get_version?
> В большинстве случаев он избыточен, но ведь вреда вроде бы от него нет?
> 
> Я обсудил ситуацию с Сергеем (zerg@, на него робот приготовил большое NMU
> с удалением %get_version в kde пакетах), и пришли к выводу,
> что раз формально set:versions не дает полных гарантий, 
> то и убирать %get_version не надо, хуже от него не будет.

Set-версии формально не дают полной гарантии, а какую тогда гарантию
формально дает %get_version?  Можно подумать, что указание версии, не
меньшей текущей, дает полную гарантию, и разводить демагогию, а на самом
деле гарантии нет вообще никакой.  Нет никакой гарантии, что в следующих
версиях сохранится полная обратная совместимость.  А set-версии как раз
пытаются выразить, и притом довольно успешно и совершенно автоматически,
определенный критерий совместимости между версиями библиотек.  То, что
"хуже не будет", aka "от балды" - я тогда сейчас сделаю в rpmbuild, чтобы
он и все зависимости дополнял текущими версиями, хуже не будет.
А будет круто!

В чем вообще смысл зависимости
Requires: libqt4-core >= %{get_version libqt4-core}
в системе с хорошо развитыми автоматическими зависимостями?
Это какое-то ретроградство и оксюморон из 1998 года.

Вообще, мега-идея была, чтобы не указывать зависимости вручную вообще:
все Requires зависимости из спекфайлов снести, а BuildRequires зависимости
добавлять только с помощью /usr/bin/buildreq.  Понятно, что не
предлагалось следовать этой идее с особым фанатизмом, но в то же время
было многое сделано для того, чтобы в большинстве случаев получался
приемлемый результат.  Так что роботу следовало бы попросту косить все
зависимости из спекфайлов под корень. :-)

> В общем, отключил тест. Если есть возражения, прошу высказать.
> 
> -- 
> 
> Dr. Igor Vlasenko
> --------------------
> Topology Department
> Institute of Math
> Kiev, Ukraine


Подробная информация о списке рассылки Devel