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

Материал из ALT Linux Wiki
(→‎Правила нумерации релизов: fixed critical release numbering bug, thx azol@)
(использование шаблона DraftPolicy)
Строка 1: Строка 1:
[[Category:Policy]]
{{DraftPolicy
|responsible=none
|discussion_link=none
|discussion_since=none
}}
{{MovedFromFreesourceInfo|AltLinux/Policy/Drafts/Backports}}
{{MovedFromFreesourceInfo|AltLinux/Policy/Drafts/Backports}}


== Backports policy ==
== Backports policy ==
 
{| border="1"
|-
|
Статус
|
Черновик, обсуждение не начато
|-
|
Автор(ы)
|
''никто за проведение в жизнь пока не взялся''
|-
|
Контрибутор(ы)
|
Михаил Шигорин (mike@), Алексей Боровской (alb@), Sir Raorn (raorn@), Mikhail Gusarov (dottedmag@)
|-
|
Обязательно в
|
 
|-
|
Метабаг
|
''не создан''
|}
 


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


== Структура репозитория ==
== Структура репозитория ==
Каждый репозиторий создается с помощью утилиты <tt>genbasedir</tt>. Поддерживаемые архитектуры -- i586 и i686. Для каждой из архитектур определена компонента <tt>backports</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/ и т.п.; ответственный за сборку -- 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 прекращена.


Строка 71: Строка 47:


== Требования к пакетам ==
== Требования к пакетам ==
=== Сборка ===
=== Сборка ===
Пакеты должны собираться в среде [[hasher]] с подключенными репозиториями:
Пакеты должны собираться в среде [[hasher]] с подключенными репозиториями:
Строка 97: Строка 74:


Где:
Где:
* ORIG_RELEASE - строка, описывающая релиз пакета, из которого "растет" данная ветка;
* ORIG_RELEASE — строка, описывающая релиз пакета, из которого «растет» данная ветка;
* BACKPORT_RELEASE - номер релиза пакета внутри репозитория backports. Нумерация начинается с 1.
* BACKPORT_RELEASE — номер релиза пакета внутри репозитория backports. Нумерация начинается с 1.
* DISTRO - дистрибутив, на который осуществляется портирование. Допустимые значения:
* DISTRO — дистрибутив, на который осуществляется портирование. Допустимые значения:
** M40 - ALT Linux 4.0 Server;
** M40 — ALT Linux 4.0 Server;
** M30 - ALT Linux 3.0 Compact;
** M30 — ALT Linux 3.0 Compact;
** M24 - ALT Linux 2.4 Master;
** M24 — ALT Linux 2.4 Master;
** M23 - ALT Linux 2.3 Compact и ALT Linux 2.3 Junior;
** M23 — ALT Linux 2.3 Compact и ALT Linux 2.3 Junior;


и по аналогии для веток новее 4.0.
и по аналогии для веток новее 4.0.
Строка 113: Строка 90:
Пример разумного исключения:
Пример разумного исключения:


Если необходимо предотвратить возможность обновления с релиза вида alt0.DISTRO.REVISION до сизифовского alt7 при наличии в Сизифе alt8 (в т.ч. в случае серьёзной ошибки, исправленной в alt8), можно сделать релиз вида alt7.DISTRO.REVISION, при условии что за основу взят именно alt8 а не alt7.
Если необходимо предотвратить возможность обновления с релиза вида alt0.DISTRO.REVISION до сизифовского alt7 при наличии в Сизифе alt8 (в том числе в случае серьёзной ошибки, исправленной в alt8), можно сделать релиз вида alt7.DISTRO.REVISION, при условии что за основу взят именно alt8 а не alt7.


== Взаимодействие с другими репозиториями ==
== Взаимодействие с другими репозиториями ==
Если делаются не бэкпорты пакетов из Sisyphus, а существенные доработки или обновления - следует уведомить майнтейнера пакета в нём и сотрудничать с ним для сохранения добавленной функциональности.
Если делаются не бэкпорты пакетов из Sisyphus, а существенные доработки или обновления — следует уведомить майнтейнера пакета в нём и сотрудничать с ним для сохранения добавленной функциональности.


Если в Sisyphus такого пакета попросту нет - желательно анонсировать сборку не только в backports@, но и в sisyphus@ (возможно, через кого-либо иного, подписанного на этот список рассылки).
Если в Sisyphus такого пакета попросту нет — желательно анонсировать сборку не только в backports@, но и в sisyphus@ (возможно, через кого-либо иного, подписанного на этот список рассылки).


== Библиотеки и всё что с ними связано ==
== Библиотеки и всё что с ними связано ==
Строка 125: Строка 102:
Бэкпорт новой версии библиотеки, входящей в состав дистрибутива, может нарушить бинарную совместимость дистрибутива. Это приведет к необходимости пересборки некоторого множества входящих в дистрибутив пакетов. Этого допускать нельзя.
Бэкпорт новой версии библиотеки, входящей в состав дистрибутива, может нарушить бинарную совместимость дистрибутива. Это приведет к необходимости пересборки некоторого множества входящих в дистрибутив пакетов. Этого допускать нельзя.


Таким образом, бэкпорты должны ограничиваться точечными изменениями входящих в дистрибутив библиотек, не приводящими к несовместимости с updates и/или необходимости пересборки в backports программ, которые слинкованы с предыдущими версиями библиотек.
Таким образом, бэкпорты должны ограничиваться точечными изменениями входящих в дистрибутив библиотек, не приводящими к несовместимости с updates и/или необходимости пересборки в backports программ, которые слинкованы с предыдущими версиями библиотек.


Попросту говоря, soname changes prohibited.
Попросту говоря, soname changes prohibited.

Версия от 20:28, 29 августа 2008

Stub.png
Черновик политики Sisyphus
Автор(ы) — none
[none Обсуждение в devel@]
Обсуждается с none


Freesource-logo.png Blue Glass Arrow.svg MediaWiki logo.png
Эта страница была перемещена с freesource.info.
Эта страница наверняка требует чистки и улучшения — смело правьте разметку и ссылки.
Просьба по окончанию убрать этот шаблон со страницы.


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


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

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

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

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