Backports Policy: различия между версиями
Ilis (обсуждение | вклад) |
м (замечание насчёт disttag) |
||
(не показано 19 промежуточных версий 8 участников) | |||
Строка 1: | Строка 1: | ||
{{DraftPolicy | {{DraftPolicy | ||
|responsible= | |responsible=alb@, dottedmag@, mike@, raorn@ | ||
|discussion_link= | |discussion_link=http://lists.altlinux.org/pipermail/backports/2005-February/005271.html | ||
|discussion_since= | |discussion_since=2004 | ||
}} | }} | ||
== Backports policy == | == Backports policy == | ||
Этот документ регламентирует назначение репозитория бэкпортов, его структуру, порядок помещения пакетов в репозиторий, а также требования, которым должен соответствовать пакет. | Этот документ регламентирует назначение репозитория бэкпортов, его структуру, порядок помещения пакетов в репозиторий стабильной ветки, а также требования, которым должен соответствовать пакет. | ||
{{attention|После [[Binary package identity change|перехода на disttag]] делать полномасштабные бэкпорты, если технически они подразумевают пересборку того же исходного пакета в другом окружении, а не именно адаптацию под особенности ветки -- стало излишне; пользуйтесь командой <tt>[[Справочник_по_git.alt#task|copy]]</tt>, которая была изменена так, что обеспечивает пересборку.}} | |||
== Назначение репозитория == | == Назначение репозитория == | ||
Репозиторий предназначен для хранения портированных на соответствующее семейство | Репозиторий предназначен для хранения портированных на соответствующее семейство дистрибутивов пакетов. Для каждого семейства дистрибутивов создается отдельный репозиторий. В настоящее время существуют репозитории для следующих дистрибутивов: | ||
* ALT Linux 4.0 Server; | * ALT Linux 4.0 Server; | ||
Строка 29: | Строка 31: | ||
== Помещение пакетов в репозиторий == | == Помещение пакетов в репозиторий == | ||
По состоянию на 2010 год централизованная сборка backports силами mike@ прекращена. | |||
<!-- | |||
Для получения возможности выкладывать пакеты в репозиторий необходимо быть участником команды разработчиков ALT Linux. Если вы уже в команде, ничего | Для получения возможности выкладывать пакеты в репозиторий необходимо быть участником команды разработчиков ALT Linux. Если вы уже в команде, ничего | ||
дополнительного не требуется. Информация по присоединению к команде находится [[Join|здесь]]. | дополнительного не требуется. Информация по присоединению к команде находится [[Join|здесь]]. | ||
Пакеты следует выкладывать на devel.altlinux.org в один из следующих каталогов: | Пакеты следует выкладывать на devel.altlinux.org в один из следующих каталогов: | ||
* для ALT Linux 2.4 и выше: /incoming/backports/2.4/ | * для ALT Linux 2.4 и выше: /incoming/backports/2.4/ и т. п.; ответственный за сборку — mike@ | ||
* для ALT Linux 2.2 Master и ALT Linux 2.3 Compact, Junior сборка backports прекращена. | * для ALT Linux 2.2 Master и ALT Linux 2.3 Compact, Junior сборка backports прекращена. | ||
В случае успешной пересборки пакеты попадают в соответствующий репозиторий. | В случае успешной пересборки пакеты попадают в соответствующий репозиторий. | ||
--> | |||
== Требования к пакетам == | == Требования к пакетам == | ||
Строка 48: | Строка 53: | ||
=== Исправления spec-файла === | === Исправления spec-файла === | ||
Поле Packager не должно изменяться. Всю необходимую информацию | Поле Packager не должно изменяться. Всю необходимую информацию нужно заносить в changelog. | ||
Например: | Например: | ||
Строка 59: | Строка 64: | ||
Поле BuildRequires должно быть адаптировано под дистрибутив, на который производится портирование. | Поле BuildRequires должно быть адаптировано под дистрибутив, на который производится портирование. | ||
В [[etersoft-build-utils]] предусмотрена команда вида <code>rpmbp -b p8</code>, | |||
которая выполняет необходимые преобразования спека: релиза пакета, ChangeLog, BuildRequires, Requires. | |||
=== Правила нумерации релизов === | === Правила нумерации релизов === | ||
Релизы нумеруются следующим образом: <tt> | Релизы нумеруются следующим образом: <tt>ADAPTED_RELEASE.DISTRO.BACKPORT_RELEASE</tt>. Таким образом, полное наименование пакета будет таким: <tt>%name-%version-ADAPTED_RELEASE.DISTRO.BACKPORT_RELEASE</tt> | ||
К примеру, первый бэкпорт пакета <tt>foo-1.0-alt1</tt> на branch/4.0 будет выглядеть как <tt>foo-1.0-alt0.M40.1</tt>. | К примеру, первый бэкпорт пакета <tt>foo-1.0-alt1</tt> на branch/4.0 будет выглядеть как <tt>foo-1.0-alt0.M40.1</tt>. | ||
Где: | Где: | ||
* | * ADAPTED_RELEASE — релиз, выбраный таким образом, что ORIG_RELEASE <= ADAPTED_RELEASE < SISYPHUS_RELEASE. | ||
* | : Рекомендуемое значение — SISYPHUS_RELEASE - 1. | ||
* | * ORIG_RELEASE — строка, описывающая релиз пакета, из которого «растёт» данная ветка (который был переложен в бранч из Сизифа); | ||
** | * SISYPHUS_RELEASE — релиз пакета в Сизифе, на базе которого делался backport пакет; | ||
** | * BACKPORT_RELEASE — номер релиза пакета внутри репозитория backports. Нумерация начинается с 1. | ||
** | * DISTRO — репозиторий ([[Branches|бранч]]) либо дистрибутив (до ALM2.4 включительно), на который осуществляется портирование. Допустимые значения: | ||
** | ** M90P — Альт p9 (дистрибутивы на базе девятой платформы); | ||
** M80C — Альт СП 8 (сертифицированный дистрибутив на базе ветки с8); | |||
** M80P — Альт p8 (дистрибутивы на базе восьмой платформы); | |||
** M70C — ALT Linux СПТ 7 (сертифицированный дистрибутив на базе ветки с7); | |||
** M70P — ALT Linux p7 (дистрибутивы на базе седьмой платформы); | |||
** M60T — ALT Linux t6 (дистрибутивы на базе 6-й ветки сообщества); | |||
** M60P — ALT Linux p6 (дистрибутивы на базе шестой платформы); | |||
** M51 — ALT Linux 5.1; | |||
** M50P — ALT Linux p5 (дистрибутивы на базе пятой платформы); | |||
** M50 — ALT Linux 5.0; | |||
** M41 — ALT Linux 4.1; | |||
** M40 — ALT Linux 4.0; | |||
** M30 — ALT Linux 3.0 Compact; | |||
** M24 — ALT Linux 2.4 Master; | |||
** M23 — ALT Linux 2.3 Compact и ALT Linux 2.3 Junior; | |||
и по аналогии для веток | и по аналогии для более новых веток. | ||
При обновлении в бэкпортах до новой версии (%version) пакета, BACKPORTS_RELEASE сбрасывается в 1 и ORIG_RELEASE устанавливается в <tt>alt0</tt>. | При обновлении в бэкпортах до новой версии (%version) пакета, BACKPORTS_RELEASE сбрасывается в 1 и ORIG_RELEASE устанавливается в <tt>alt0</tt>. | ||
Строка 96: | Строка 118: | ||
{{Category navigation|title=Backports|category=Backports}} | {{Category navigation|title=Backports|category=Backports}} | ||
{{Category navigation|title=Черновики нормативных документов|category=Черновики нормативных документов|sortkey={{SUBPAGENAME}}}} |
Версия от 12:31, 21 апреля 2020
Backports policy
Этот документ регламентирует назначение репозитория бэкпортов, его структуру, порядок помещения пакетов в репозиторий стабильной ветки, а также требования, которым должен соответствовать пакет.
Назначение репозитория
Репозиторий предназначен для хранения портированных на соответствующее семейство дистрибутивов пакетов. Для каждого семейства дистрибутивов создается отдельный репозиторий. В настоящее время существуют репозитории для следующих дистрибутивов:
- ALT Linux 4.0 Server;
- ALT Linux 3.0 Compact;
- ALT Linux 2.4 Master;
- ALT Linux 2.3 Compact, Junior (только архив);
- ALT Linux 2.2 Master (только архив).
Структура репозитория
Каждый репозиторий создается с помощью утилиты genbasedir. Поддерживаемые архитектуры — i586 и i686. Для каждой из архитектур определена компонента backports. При необходимости в репозиторий могут быть добавлены другие архитектуры.
Расположение репозитория и доступ к нему
Получить доступ к репозиторию на чтение можно несколькими способами:
- По протоколу ftp: ftp://ftp.altlinux.org/pub/distributions/ALTLinux/backports/
- По протоколу rsync: rsync://rsync.altlinux.org/ALTLinux/backports/
Помещение пакетов в репозиторий
По состоянию на 2010 год централизованная сборка backports силами mike@ прекращена.
Требования к пакетам
Сборка
Пакеты должны собираться в среде hasher с подключенными репозиториями:
- Основной репозиторий дистрибутива. Например, репозиторий с дистрибутивом Master 2.4.
- Репозиторий с updates для дистрибутива.
- Репозиторий с backports для дистрибутива.
Исправления spec-файла
Поле Packager не должно изменяться. Всю необходимую информацию нужно заносить в changelog.
Например:
Packager: Alexander Nekrasov <e-ma@il> .... %changelog * Sat Sep 25 2004 Alexey Borovskoy <e-mai@il> 0.4-alt0.M24.1 - Backport to Master 2.4 - 0.4
Поле BuildRequires должно быть адаптировано под дистрибутив, на который производится портирование.
В etersoft-build-utils предусмотрена команда вида rpmbp -b p8
,
которая выполняет необходимые преобразования спека: релиза пакета, ChangeLog, BuildRequires, Requires.
Правила нумерации релизов
Релизы нумеруются следующим образом: ADAPTED_RELEASE.DISTRO.BACKPORT_RELEASE. Таким образом, полное наименование пакета будет таким: %name-%version-ADAPTED_RELEASE.DISTRO.BACKPORT_RELEASE
К примеру, первый бэкпорт пакета foo-1.0-alt1 на branch/4.0 будет выглядеть как foo-1.0-alt0.M40.1.
Где:
- ADAPTED_RELEASE — релиз, выбраный таким образом, что ORIG_RELEASE <= ADAPTED_RELEASE < SISYPHUS_RELEASE.
- Рекомендуемое значение — SISYPHUS_RELEASE - 1.
- ORIG_RELEASE — строка, описывающая релиз пакета, из которого «растёт» данная ветка (который был переложен в бранч из Сизифа);
- SISYPHUS_RELEASE — релиз пакета в Сизифе, на базе которого делался backport пакет;
- BACKPORT_RELEASE — номер релиза пакета внутри репозитория backports. Нумерация начинается с 1.
- DISTRO — репозиторий (бранч) либо дистрибутив (до ALM2.4 включительно), на который осуществляется портирование. Допустимые значения:
- M90P — Альт p9 (дистрибутивы на базе девятой платформы);
- M80C — Альт СП 8 (сертифицированный дистрибутив на базе ветки с8);
- M80P — Альт p8 (дистрибутивы на базе восьмой платформы);
- M70C — ALT Linux СПТ 7 (сертифицированный дистрибутив на базе ветки с7);
- M70P — ALT Linux p7 (дистрибутивы на базе седьмой платформы);
- M60T — ALT Linux t6 (дистрибутивы на базе 6-й ветки сообщества);
- M60P — ALT Linux p6 (дистрибутивы на базе шестой платформы);
- M51 — ALT Linux 5.1;
- M50P — ALT Linux p5 (дистрибутивы на базе пятой платформы);
- M50 — ALT Linux 5.0;
- M41 — ALT Linux 4.1;
- M40 — ALT Linux 4.0;
- M30 — ALT Linux 3.0 Compact;
- M24 — ALT Linux 2.4 Master;
- M23 — ALT Linux 2.3 Compact и ALT Linux 2.3 Junior;
и по аналогии для более новых веток.
При обновлении в бэкпортах до новой версии (%version) пакета, BACKPORTS_RELEASE сбрасывается в 1 и ORIG_RELEASE устанавливается в alt0.
Такая схема версионирования выбрана потому, что новая версия пакета, собираемого в backports, должна иметь номер релиза меньший, чем та же версия в Сизифе, но при этом не меньший, чем та же версия в backports для предыдущих серий.
Пример разумного исключения:
Если необходимо предотвратить возможность обновления с релиза вида alt0.DISTRO.REVISION до сизифовского alt7 при наличии в Сизифе alt8 (в том числе в случае серьёзной ошибки, исправленной в alt8), можно сделать релиз вида alt7.DISTRO.REVISION, при условии что за основу взят именно alt8 а не alt7.
Взаимодействие с другими репозиториями
Если делаются не бэкпорты пакетов из Sisyphus, а существенные доработки или обновления — следует уведомить майнтейнера пакета в нём и сотрудничать с ним для сохранения добавленной функциональности.
Если в Sisyphus такого пакета попросту нет — желательно анонсировать сборку не только в backports@, но и в sisyphus@ (возможно, через кого-либо иного, подписанного на этот список рассылки).
Библиотеки и всё что с ними связано
Пакеты с библиотеками, входящими в пакетную базу дистрибутива, реализуют множество интерфейсов, которые определяют бинарную совместимость дистрибутива.
Бэкпорт новой версии библиотеки, входящей в состав дистрибутива, может нарушить бинарную совместимость дистрибутива. Это приведет к необходимости пересборки некоторого множества входящих в дистрибутив пакетов. Такое бэкпортирование допускается, только если будет осуществлена пересборка всех зависимых пакетов.