Внимание: текущий драфт документа находится на вики, просьба ориентироваться на него
19 июня 20070.0.9.2
Автор: Alexey Borovskoy
0. Документ и его обновление
- --------------------------
Документ регламентирует назначение репозитория, его структуру,
порядок помещения пакетов в репозиторий, а также необходимые
требования, которым должен соответствовать пакет.
Backports policy сопровождается и обновляется участниками
backports maintainers committee.
Состав backports maintainers committee:
- "Michael Shigorin"
- "Alexey I. Froloff (Sir Raorn)"
1. Назначение репозитория
- -----------------------
Репозиторий предназначен для хранения портированных на соответствующее
семейство дистрибутив пакетов. Для каждого семейства дистрибутивов создается
отдельный репозиторий. В настоящее время (лето 2007) существуют репозитории
для следующих дистрибутивов:
- 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 (только архив).
2. Структура репозитория
- ----------------------
Каждый репозиторий создается с помощью утилиты genbasedir. Поддерживаемые
архитектуры -- i586 и i686. Для каждой из архитектур определена компонента
backports. При необходимости в репозиторий могут быть добавлены другие архитектуры.
2.1. Расположение репозитория и доступ к нему
Получить доступ к репозиторию на чтение можно несколькими способами:
- По протоколу ftp
ftp://ftp.altlinux.org/pub/distributions/ALTLinux/backports/
- По протоколу rsync
rsync://rsync.altlinux.org::ALTLinux/backports/
2.2. Помещение пакетов в репозиторий
Для получения возможности выкладывать пакеты в репозиторий необходимо быть
участником команды разработчиков ALT Linux. Если вы уже в команде, ничего
дополнительного не требуется. Новых участников команды ждут по адресу join at
altlinux dot ru.
Пакеты следует выкладывать на cvs.altlinux.org в один из следующих каталогов:
- для ALT Linux 2.3 и выше:
/incoming/backports/2.3/ и т.п.;
Ответственный за сборку -- mike@
- для ALT Linux 2.2 Master сборка backports прекращена.
В случае успешной пересборки пакеты попадают в соответствующий репозиторий.
3. Требования к пакетам
- ---------------------
3.1. Пакеты должны собираться в среде hasher или sandman с подключенными репозиториями:
- Основной репозиторий дистрибутива. Например, репозиторий с дистрибутивом
Master 2.4.
- Репозиторий с updates для дистрибутива.
- Репозиторий с backports для дистрибутива.
Использование hasher предпочтительнее. На системах старее ветки 2.3 возможно
использовать только sandman, поскольку hasher на них ещё не портирован.
3.2. Работа со спеком
- Поле Packager не должно изменяться. Всю необходимую информацию заностить в changelog.
Например:
Packager: Alexander Nekrasov
....
%changelog
* Sat Sep 25 2004 Alexey Borovskoy 0.4-alt0.M24.1
- Backport to Master 2.4
- 0.4
- BuildRequires должен быть адаптирован под платформу, на которую производится портирование.
3.3. Правила нумерации релизов
Релизы нумеруются следующим образом: BRANCH_POINT_RELEASE.BRANCH.REVISION.
Таким образом, полное наименование пакета будет таким:
%name-%version-BRANCH_POINT_RELEASE.BRANCH.REVISION.
Где:
- REVISION - номер ревизии пакета внутри репозитория backports. Нумерация начинается с 1.
- BRANCH_POINT_RELEASE - строка, описывающая релиз, из которого "растет" данная ветка;
- BRANCH - версия ветки. Допустимые значения:
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) пакета, REVISION сбрасывается в 1 и
BRANCH_POINT_RELEASE устанавливается в "alt0".
Обоснование:
Новая версия пакета, собираемого в backports, должна иметь номер релиза
меньший, чем та же версия в Сизифе, но при этом не меньший, чем та же версия в
backports для предыдущих серий.
Пример разумного исключения:
Если необходимо предотвратить возможность обновления с релиза вида
alt0.BRANCH.REVISION до сизифовского alt7 при наличии в Сизифе alt8
(в т.ч. в случае серьёзной ошибки, исправленной в alt8), можно сделать
релиз вида alt7.BRANCH.REVISION, при условии что за основу взят именно
alt8 а не alt7.
4. Взаимодействие с другими репозиториями
- ---------------------------------------
Если делаются не бэкпорты пакетов из Sisyphus, а существенные
доработки или обновления - следует уведомить майнтейнера пакета
в нём и сотрудничать с ним для сохранения добавленной
функциональности.
Если в Sisyphus такого пакета попросту нет - желательно
анонсировать сборку не только в backports@, но и в sisyphus@
(возможно, через кого-либо иного, подписанного на этот список
рассылки).
5. Библиотеки и всё что с ними связано
- ------------------------------------
Пакеты с библиотеками, входящими в пакетную базу дистрибутива,
реализуют множество интерфейсов, которые определяют бинарную
совместимость дистрибутива.
Бэкпорт новой версии библиотеки, входящей в состав дистрибутива,
может нарушить бинарную совместимость дистрибутива. Это приведет
к необходимости пересборки некоторого множества входящих в
дистрибутив пакетов. Этого допускать нельзя.
Таким образом, бэкпорты должны ограничиваться точечными изменениями
входящих в дистрибутив библиотек, не приводящими к несовместимости
с updates и/или необходимости пересборки в backports программ,
которые слинкованы с предыдущими версиями библиотек.
Попросту говоря, soname changes prohibited.
Changelog:
Backports Policy