Backports Policy — различия между версиями

Материал из ALT Linux Wiki
Перейти к: навигация, поиск
м (metadata)
м (замечание насчёт disttag)
 
(не показано 14 промежуточных версий 6 участников)
Строка 7: Строка 7:
 
==  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/ и т. п.; ответственный за сборку — mike@
+
* для 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 не должно изменяться. Всю необходимую информацию заностить в changelog.
+
Поле Packager не должно изменяться. Всю необходимую информацию нужно заносить в changelog.
  
 
Например:
 
Например:
Строка 59: Строка 64:
  
 
Поле BuildRequires должно быть адаптировано под дистрибутив, на который производится портирование.
 
Поле BuildRequires должно быть адаптировано под дистрибутив, на который производится портирование.
 +
 +
В [[etersoft-build-utils]] предусмотрена команда вида <code>rpmbp -b p8</code>,
 +
которая выполняет необходимые преобразования спека: релиза пакета, ChangeLog, BuildRequires, Requires.
  
 
=== Правила нумерации релизов ===
 
=== Правила нумерации релизов ===
Строка 66: Строка 74:
  
 
Где:
 
Где:
* ADAPTED_RELEASE — релиз, выбраный таким образом, что ORIG_RELEASE <= ADAPTED_RELEASE < SISYPHUS_RELEASE.
+
* ADAPTED_RELEASE — релиз, выбраный таким образом, что ORIG_RELEASE <= ADAPTED_RELEASE < SISYPHUS_RELEASE.
: Рекомендуемое значение — SISYPHUS_RELEASE - 1.
+
: Рекомендуемое значение — SISYPHUS_RELEASE - 1.
* ORIG_RELEASE — строка, описывающая релиз пакета, из которого «растёт» данная ветка (который был переложен в бранч из Сизифа);
+
* ORIG_RELEASE — строка, описывающая релиз пакета, из которого «растёт» данная ветка (который был переложен в бранч из Сизифа);
* SISYPHUS_RELEASE — релиз пакета в Сизифе, на базе которого делался backport пакет;
+
* SISYPHUS_RELEASE — релиз пакета в Сизифе, на базе которого делался backport пакет;
* BACKPORT_RELEASE — номер релиза пакета внутри репозитория backports. Нумерация начинается с 1.
+
* BACKPORT_RELEASE — номер релиза пакета внутри репозитория backports. Нумерация начинается с 1.
* DISTRO — дистрибутив, на который осуществляется портирование. Допустимые значения:
+
* DISTRO — репозиторий ([[Branches|бранч]]) либо дистрибутив (до ALM2.4 включительно), на который осуществляется портирование. Допустимые значения:
** M50 — ALT Linux 5.0;
+
** M90P — Альт p9 (дистрибутивы на базе девятой платформы);
** M41 — ALT Linux 4.1;
+
** M80C — Альт СП 8 (сертифицированный дистрибутив на базе ветки с8);
** M40 — ALT Linux 4.0;
+
** M80P — Альт p8 (дистрибутивы на базе восьмой платформы);
** M30 — ALT Linux 3.0 Compact;
+
** M70C — ALT Linux СПТ 7 (сертифицированный дистрибутив на базе ветки с7);
** M24 — ALT Linux 2.4 Master;
+
** M70P — ALT Linux p7 (дистрибутивы на базе седьмой платформы);
** M23 — ALT Linux 2.3 Compact и ALT Linux 2.3 Junior;
+
** 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;
  
и по аналогии для веток новее 5.0.
+
и по аналогии для более новых веток.
  
 
При обновлении в бэкпортах до новой версии (%version) пакета, BACKPORTS_RELEASE сбрасывается в 1 и ORIG_RELEASE устанавливается в <tt>alt0</tt>.
 
При обновлении в бэкпортах до новой версии (%version) пакета, BACKPORTS_RELEASE сбрасывается в 1 и ORIG_RELEASE устанавливается в <tt>alt0</tt>.
Строка 101: Строка 118:
  
 
{{Category navigation|title=Backports|category=Backports}}
 
{{Category navigation|title=Backports|category=Backports}}
 +
{{Category navigation|title=Черновики нормативных документов|category=Черновики нормативных документов|sortkey={{SUBPAGENAME}}}}

Текущая версия на 12:31, 21 апреля 2020

Stub.png
Черновик политики Sisyphus
Автор(ы) — alb@, dottedmag@, mike@, raorn@
Обсуждение в devel@
Обсуждается с 2004


Backports policy[править]

Этот документ регламентирует назначение репозитория бэкпортов, его структуру, порядок помещения пакетов в репозиторий стабильной ветки, а также требования, которым должен соответствовать пакет.

Внимание! После перехода на disttag делать полномасштабные бэкпорты, если технически они подразумевают пересборку того же исходного пакета в другом окружении, а не именно адаптацию под особенности ветки -- стало излишне; пользуйтесь командой copy, которая была изменена так, что обеспечивает пересборку.


Назначение репозитория[править]

Репозиторий предназначен для хранения портированных на соответствующее семейство дистрибутивов пакетов. Для каждого семейства дистрибутивов создается отдельный репозиторий. В настоящее время существуют репозитории для следующих дистрибутивов:

  • 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. При необходимости в репозиторий могут быть добавлены другие архитектуры.


Расположение репозитория и доступ к нему[править]

Получить доступ к репозиторию на чтение можно несколькими способами:

Помещение пакетов в репозиторий[править]

По состоянию на 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@ (возможно, через кого-либо иного, подписанного на этот список рассылки).

Библиотеки и всё что с ними связано[править]

Пакеты с библиотеками, входящими в пакетную базу дистрибутива, реализуют множество интерфейсов, которые определяют бинарную совместимость дистрибутива.

Бэкпорт новой версии библиотеки, входящей в состав дистрибутива, может нарушить бинарную совместимость дистрибутива. Это приведет к необходимости пересборки некоторого множества входящих в дистрибутив пакетов. Такое бэкпортирование допускается, только если будет осуществлена пересборка всех зависимых пакетов.