Backports Policy: различия между версиями
(→Правила нумерации релизов: fixed critical release numbering bug, thx azol@) |
(использование шаблона DraftPolicy) |
||
Строка 1: | Строка 1: | ||
{{DraftPolicy | |||
|responsible=none | |||
|discussion_link=none | |||
|discussion_since=none | |||
}} | |||
{{MovedFromFreesourceInfo|AltLinux/Policy/Drafts/Backports}} | {{MovedFromFreesourceInfo|AltLinux/Policy/Drafts/Backports}} | ||
== Backports policy == | == Backports policy == | ||
Этот документ регламентирует назначение репозитория бэкпортов, его структуру, порядок помещения пакетов в репозиторий, а также требования, которым должен соответствовать пакет. | Этот документ регламентирует назначение репозитория бэкпортов, его структуру, порядок помещения пакетов в репозиторий, а также требования, которым должен соответствовать пакет. | ||
Строка 52: | Строка 27: | ||
== Структура репозитория == | == Структура репозитория == | ||
Каждый репозиторий создается с помощью утилиты <tt>genbasedir</tt>. Поддерживаемые | Каждый репозиторий создается с помощью утилиты <tt>genbasedir</tt>. Поддерживаемые архитектуры — i586 и i686. Для каждой из архитектур определена компонента <tt>backports</tt>. При необходимости в репозиторий могут быть добавлены другие архитектуры. | ||
== Расположение репозитория и доступ к нему == | == Расположение репозитория и доступ к нему == | ||
Получить доступ к репозиторию на чтение можно несколькими способами: | Получить доступ к репозиторию на чтение можно несколькими способами: | ||
Строка 65: | Строка 41: | ||
Пакеты следует выкладывать на cvs.altlinux.org в один из следующих каталогов: | Пакеты следует выкладывать на cvs.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 прекращена. | ||
Строка 71: | Строка 47: | ||
== Требования к пакетам == | == Требования к пакетам == | ||
=== Сборка === | === Сборка === | ||
Пакеты должны собираться в среде [[hasher]] с подключенными репозиториями: | Пакеты должны собираться в среде [[hasher]] с подключенными репозиториями: | ||
Строка 97: | Строка 74: | ||
Где: | Где: | ||
* | * ORIG_RELEASE — строка, описывающая релиз пакета, из которого «растет» данная ветка; | ||
* | * BACKPORT_RELEASE — номер релиза пакета внутри репозитория backports. Нумерация начинается с 1. | ||
* | * DISTRO — дистрибутив, на который осуществляется портирование. Допустимые значения: | ||
** | ** M40 — ALT Linux 4.0 Server; | ||
** | ** M30 — ALT Linux 3.0 Compact; | ||
** | ** M24 — ALT Linux 2.4 Master; | ||
** | ** M23 — ALT Linux 2.3 Compact и ALT Linux 2.3 Junior; | ||
и по аналогии для веток новее 4.0. | и по аналогии для веток новее 4.0. | ||
Строка 113: | Строка 90: | ||
Пример разумного исключения: | Пример разумного исключения: | ||
Если необходимо предотвратить возможность обновления с релиза вида alt0.DISTRO.REVISION до сизифовского alt7 при наличии в Сизифе alt8 (в | Если необходимо предотвратить возможность обновления с релиза вида alt0.DISTRO.REVISION до сизифовского alt7 при наличии в Сизифе alt8 (в том числе в случае серьёзной ошибки, исправленной в alt8), можно сделать релиз вида alt7.DISTRO.REVISION, при условии что за основу взят именно alt8 а не alt7. | ||
== Взаимодействие с другими репозиториями == | == Взаимодействие с другими репозиториями == | ||
Если делаются не бэкпорты пакетов из Sisyphus, а существенные доработки или | Если делаются не бэкпорты пакетов из Sisyphus, а существенные доработки или обновления — следует уведомить майнтейнера пакета в нём и сотрудничать с ним для сохранения добавленной функциональности. | ||
Если в Sisyphus такого пакета попросту | Если в Sisyphus такого пакета попросту нет — желательно анонсировать сборку не только в backports@, но и в sisyphus@ (возможно, через кого-либо иного, подписанного на этот список рассылки). | ||
== Библиотеки и всё что с ними связано == | == Библиотеки и всё что с ними связано == | ||
Строка 125: | Строка 102: | ||
Бэкпорт новой версии библиотеки, входящей в состав дистрибутива, может нарушить бинарную совместимость дистрибутива. Это приведет к необходимости пересборки некоторого множества входящих в дистрибутив пакетов. Этого допускать нельзя. | Бэкпорт новой версии библиотеки, входящей в состав дистрибутива, может нарушить бинарную совместимость дистрибутива. Это приведет к необходимости пересборки некоторого множества входящих в дистрибутив пакетов. Этого допускать нельзя. | ||
Таким образом, бэкпорты должны ограничиваться точечными изменениями входящих в дистрибутив библиотек, не приводящими к несовместимости с updates и/или необходимости пересборки в backports программ, | Таким образом, бэкпорты должны ограничиваться точечными изменениями входящих в дистрибутив библиотек, не приводящими к несовместимости с updates и/или необходимости пересборки в backports программ, которые слинкованы с предыдущими версиями библиотек. | ||
Попросту говоря, soname changes prohibited. | Попросту говоря, soname changes prohibited. |
Версия от 20:28, 29 августа 2008
Backports policy
Этот документ регламентирует назначение репозитория бэкпортов, его структуру, порядок помещения пакетов в репозиторий, а также требования, которым должен соответствовать пакет.
Обновление policy
Backports policy сопровождается и обновляется участниками backports maintainers committee.
Состав backports maintainers committee:
- Michael Shigorin
- Alexey I. Froloff (Sir Raorn)
Назначение репозитория
Репозиторий предназначен для хранения портированных на соответствующее семейство дистрибутив пакетов. Для каждого семейства дистрибутивов создается отдельный репозиторий. В настоящее время существуют репозитории для следующих дистрибутивов:
- 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/
Помещение пакетов в репозиторий
Для получения возможности выкладывать пакеты в репозиторий необходимо быть участником команды разработчиков ALT Linux. Если вы уже в команде, ничего дополнительного не требуется. Информация по присоединению к команде находится здесь.
Пакеты следует выкладывать на cvs.altlinux.org в один из следующих каталогов:
- для ALT Linux 2.4 и выше: /incoming/backports/2.4/ и т. п.; ответственный за сборку — mike@
- для ALT Linux 2.2 Master и ALT Linux 2.3 Compact, Junior сборка backports прекращена.
В случае успешной пересборки пакеты попадают в соответствующий репозиторий.
Требования к пакетам
Сборка
Пакеты должны собираться в среде 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 должно быть адаптировано под дистрибутив, на который производится портирование.
Правила нумерации релизов
Релизы нумеруются следующим образом: ORIG_RELEASE.DISTRO.BACKPORT_RELEASE. Таким образом, полное наименование пакета будет таким: %name-%version-ORIG_RELEASE.DISTRO.BACKPORT_RELEASE
К примеру, первый бэкпорт пакета foo-1.0-alt1 на branch/4.0 будет выглядеть как foo-1.0-alt0.M40.1.
Где:
- ORIG_RELEASE — строка, описывающая релиз пакета, из которого «растет» данная ветка;
- BACKPORT_RELEASE — номер релиза пакета внутри репозитория backports. Нумерация начинается с 1.
- DISTRO — дистрибутив, на который осуществляется портирование. Допустимые значения:
- M40 — ALT Linux 4.0 Server;
- M30 — ALT Linux 3.0 Compact;
- M24 — ALT Linux 2.4 Master;
- M23 — ALT Linux 2.3 Compact и ALT Linux 2.3 Junior;
и по аналогии для веток новее 4.0.
При обновлении в бэкпортах до новой версии (%version) пакета, BACKPORTS_RELEASE сбрасывается в 1 и ORIG_RELEASE устанавливается в alt0.
Такая схема версионирования выбрана потому, что новая версия пакета, собираемого в backports, должна иметь номер релиза меньший, чем та же версия в Сизифе, но при этом не меньший, чем та же версия в backports для предыдущих серий.
Пример разумного исключения:
Если необходимо предотвратить возможность обновления с релиза вида alt0.DISTRO.REVISION до сизифовского alt7 при наличии в Сизифе alt8 (в том числе в случае серьёзной ошибки, исправленной в alt8), можно сделать релиз вида alt7.DISTRO.REVISION, при условии что за основу взят именно alt8 а не alt7.
Взаимодействие с другими репозиториями
Если делаются не бэкпорты пакетов из Sisyphus, а существенные доработки или обновления — следует уведомить майнтейнера пакета в нём и сотрудничать с ним для сохранения добавленной функциональности.
Если в Sisyphus такого пакета попросту нет — желательно анонсировать сборку не только в backports@, но и в sisyphus@ (возможно, через кого-либо иного, подписанного на этот список рассылки).
Библиотеки и всё что с ними связано
Пакеты с библиотеками, входящими в пакетную базу дистрибутива, реализуют множество интерфейсов, которые определяют бинарную совместимость дистрибутива.
Бэкпорт новой версии библиотеки, входящей в состав дистрибутива, может нарушить бинарную совместимость дистрибутива. Это приведет к необходимости пересборки некоторого множества входящих в дистрибутив пакетов. Этого допускать нельзя.
Таким образом, бэкпорты должны ограничиваться точечными изменениями входящих в дистрибутив библиотек, не приводящими к несовместимости с updates и/или необходимости пересборки в backports программ, которые слинкованы с предыдущими версиями библиотек.
Попросту говоря, soname changes prohibited.