RPM Macros Packaging Policy: различия между версиями

Материал из ALT Linux Wiki
Нет описания правки
Строка 8: Строка 8:


* Файлы с макросами должны лежать в {{path|/usr/lib/rpm/macros.d/}}.
* Файлы с макросами должны лежать в {{path|/usr/lib/rpm/macros.d/}}.
* Для поддержания обратной совместимости разрешается (но не рекомендуется) держать файлы с макросами в {{path|/etc/rpm/macros.d}} (не в {{path|/etc/rpm/}}). В следующей крупной редакции этой политики директория {{path|/etc/rpm/macros.d}} будет запрещёна.
* Для поддержания обратной совместимости разрешается (но не рекомендуется) держать файлы с макросами в {{path|/etc/rpm/macros.d}} (не в {{path|/etc/rpm/}}). В следующей крупной редакции этой политики директория {{path|/etc/rpm/macros.d}} будет запрещена.
* Файлы с макросами должны находиться в отдельном пакете с именем {{pkg|rpm-build-<name>}} или {{pkg|rpm-macros-<name>}}.
* Файлы с макросами должны находиться в отдельном пакете с именем {{pkg|rpm-build-<name>}} или {{pkg|rpm-macros-<name>}}.
* Файлы {{path|<name>-files.req.list}}, определяющие зависимости на каталоги, и другие {{path|*.req*}}/{{path|*.prov*}} файлы должны лежать в {{path|%_rpmlibdir}} ({{path|/usr/lib/rpm/}}).
* Файлы {{path|<name>-files.req.list}}, определяющие зависимости на каталоги, и другие {{path|*.req*}}/{{path|*.prov*}} файлы должны лежать в {{path|%_rpmlibdir}} ({{path|/usr/lib/rpm/}}).

Версия от 12:08, 22 ноября 2008

Stub.png
Черновик политики Sisyphus
Автор(ы) — Игорь Власенко
Обсуждение в devel@
Обсуждается с 26.05.2008


Политика упаковки макросов rpm и расширений rpm-build

  • Файлы с макросами должны лежать в /usr/lib/rpm/macros.d/.
  • Для поддержания обратной совместимости разрешается (но не рекомендуется) держать файлы с макросами в /etc/rpm/macros.d (не в /etc/rpm/). В следующей крупной редакции этой политики директория /etc/rpm/macros.d будет запрещена.
  • Файлы с макросами должны находиться в отдельном пакете с именем rpm-build-<name> или rpm-macros-<name>.
  • Файлы <name>-files.req.list, определяющие зависимости на каталоги, и другие *.req*/*.prov* файлы должны лежать в %_rpmlibdir (/usr/lib/rpm/).
  • Файлы <name>-files.req.list и другие *.req*/*.prov* файлы рекомендуется выделять в отдельный пакет с именем rpm-build-<name>.
  • Пакет rpm-build-%name должен предоставлять всё необходимое для сборки бинарного пакета (rpmbuild -bb/-ba).
  • Пакет rpm-macros-%name должен предоставлять всё необходимое для сборки исходного пакета (rpmbuild -bs --nodeps).
  • Пакет %name-devel должен иметь зависимость на rpm-build-%name.
  • Пакет rpm-build-%name должен иметь зависимость на (или включать в себя) rpm-macros-%name.
  • Пакет rpm-macros-%name не должен иметь сторонних зависимостей, кроме тех, которые необходимы для раскрытия содержащихся в нём макросов.

Рекомендуется выделять пакет rpm-macros-%name из rpm-build-%name, в случае, если у того *.req*/*.prov* файлы имеют сторонние зависимости. Решение о выделении rpm-macros-%name в отдельный от rpm-build-%name пакет принимает мантейнер соответствующего пакета.

Рекомендуется выделять пакет rpm-build-%name/rpm-macros-%name из %name-devel, чтобы явно выделить пакеты, нужные для для сборки исходного пакета (rpmbuild -bs --nodeps), в отдельную группу.

Разрешается (но не рекомендуется) не выделять отдельно пакет rpm-build-%name (и, возможно, rpm-macros-%name) из %name-devel если выделение rpm-build-%name из %name-devel не приводит к уменьшению pre-сборочных зависимостей (зависимостей, необходимых для сборки .src.rpm). Например, если пакет с макросами входит в basesystem, или не имеет существенных зависимостей вне basesystem.

Разрешается не выделять отдельно пакет rpm-build-%name из %name-devel, если последний не содержит файлов с макросами, а только расширения rpm-build. Также, принято не выделять rpm-build-%name из %name-devel из-за единственного файла <name>-files.req.list.

Аргументация

Эта секция не является нормативной

В общем случае, файл с макросами rpm связан с каким-то из -devel пакетов. Например, макросы для упаковки perl приложений содержатся в пакете rpm-build-perl, связанном с пакетом perl-devel. Иногда макросы для упаковки могут лежать и прямо в -devel пакете, как в случае gconf-devel. Последний случай плох тем, что для исполнения команды rpmbuild -bs в хост-системе нужно устанавливать весь -devel пакет и его зависимости. Этого не случилось бы, будь макросы выделены в отдельный подпакет.

Пакеты с макросами должны называться rpm-build-<name>/rpm-macros-<name> чтобы их было легко найти и установить, и не должны иметь зависимостей, чтобы не засорять хост-сиситему.