Обсуждение:Spec

Материал из ALT Linux Wiki

Недостача

Отсутствует описание %pre, %post, %preun, %postun и %trigger* (хорошо бы ещё сослаться на /usr/share/doc/rpm-4.0.4/manual/triggers, в котором кроме собственно триггеров задокументирован и порядок выполнения пакетных скриптов).

Стиль

По традиции, тэги пишутся с заглавной буквы (Name, Version, Release, и т.п.).

Комментарии пишут к тому, что нуждается в комментарии; тэги, которые есть в каждом спеке, лучше не комментировать.

Точка в конце Summary указывать не следует.

BuildRequires странный, содержит пакеты, которые всегда присутствуют в сборочной среде, а также пакеты, которые на самом деле не нужны для сборки.

У нас нет полиси указывать provides: bundled(). Нужны веские основания использовать носимые с собой zlib, lz4, и magic вместо системных.

Вместо

%dir %{_datadir}/%{name}/%{version}
%{_datadir}/%{name}/%{version}/*

можно написать

%{_datadir}/%{name}/%{version}/

аналогичную замену можно сделать и в других местах.

-- ldv@

...а затем напустить cleanup_spec и получить наконец %_datadir/%name/%version/

-- mike@

Промежуточные upstream-релизы

Для линеаризации номера версии в git можно использовать git describe:
* 1.0-alt1.git1.5.4-1-g18208b2

Во-первых, это не сработает. Дефисы в релизе (как и в версии) недопустимы.

При сборке промежуточных релизов upstream-кода (срезов по дате, по системе контроля версий), следует указывать информацию о срезе в поле Release:
* 1.0-alt1.r6543

Не согласен. Почему так? промежуточный релиз относится к апстримной версии, ему место в версии.

Обсуждать здесь не имеет ни малейшего смысла. Имеет смысл обсуждать в devel@. --dottedmag 19:55, 14 марта 2009 (UTC)

Согласен с несогласием Михаила. Сам некоторое время использовал релизы следующего вида: 3.2.2_7_g39420d7-alt1 . Однако недавно понял, что в этом случае rpm иначе трактует старшинство версий. : 3.2.2_7_g39420d7-alt1 < 3.2_40_g39420d7-alt1

Ищу истину в данном вопросе.

-- ИльдарМулюков 10:02, 18 августа 2010 (UTC)

Я обычно кладу SCM-ные идентификаторы (кусок хэша, ревизию) в %changelog и при необходимости увеличиваю Release:. Припоминается обсуждение в devel@, но аргументов и даже слов сейчас сходу не вспомню. --mike 22:25, 12 октября 2011 (MSD)

См. тж.