On Tue, Dec 12, 2006 at 12:35:24AM +1200, Alexey Borovskoy wrote: > Попытался собрать питоний модуль для ALM24/30 с помощью gear. > Не получилось, gear не понимает питонью полиси. Что именно не понимает - макросы в Name/Version/Release, или ещё что-то? > Как это объехать? Есть несколько вариантов объезда макросов: 1) Просто не пользоваться @name@, @version@, @release@ в .gear-rules (не совсем удобно, но работать будет). 2) Переделать spec с целью исключения макросов из нужных полей (например, в kernel-image-std-smp вместо сборки Name из отдельных кусков теперь это поле пишется в окончательном виде, а потом разбирается на части через %(...) ). Кстати, часть полей можно оставить и с макросами, если их значения не требуются в .gear-rules. Похоже, в случае модулей Python годится как раз такой вариант - вместо существующих кусков вида: %define version 1.2.3 %define release alt2 %setup_python_module foo Name: %packagename Version: %version Release: %release можно писать таким образом: Version: 1.2.3 Release: alt2 %setup_python_module foo Name: %packagename Определение Version и Release раньше Name выглядит несколько странно, но работает (при этом макросы %version и %release определяются самим rpm, так что строк в таком варианте получается даже меньше). Конечно, @name@ в данном случае использовать не получится, но, скорее всего, оно там в таком виде и не нужно (тем более, по умолчанию у tar name=@dir@-@version@). 3) Подозреваю, что сработает хак вида: %if 0 Name: foo Version: 1.2.3 Release: alt2 %endif (gear берёт первое вхождение, не обращая внимания на условия в spec). Впрочем, такой способ вряд ли лучше варианта 1 - всё равно приходится синхронизировать информацию в нескольких местах, разве что в данном случае всё находится в одном файле.