[Comm] I: new repo autoports/p8
Igor Vlasenko
vlasenko на imath.kiev.ua
Пн Окт 31 13:05:34 MSK 2016
Уважаемые господа,
Вступил в строй репозиторий Autoports/p8 --
точечных обновлений для p8, бакпортированных из Сизифа.
Репозиторий доступен в сети Интернет как http/ftp/rsync
apt-репозиторий autoports на autoports.altlinux.org,
к примеру,
http://autoports.altlinux.org/pub/ALTLinux/autoports/p8/
из http://www.altlinux.org/Autoports :
<quote>
Autoports - это постоянно обновляемый репозиторий свежих версий
пакетов из Sisyphus, которые автоматически пересобраны для установки
в текущую стабильную ветвь (в настоящее время это p8).
</quote>
Готовые файлы для настройки
на Autoports есть в пакете apt-conf-autoports-p8
подробнее о настройке см. http://www.altlinux.org/Autoports/p8 .
Autoports призван смягчить дыру в жизненном цикле стабильных дистрибутивов,
появившуюся с преждевременной смертью репозитория Backports.
В настоящий момент Autoports мониторит около 4500 пакетов, содержит 420
новых пакетов относительно p8.
Схема работы Autoports.
Пакеты из нестабильной ветки репозитория СПО Sisyphus разбиты с
точки зрения системы на три типа списков: белые списки, серый список и
черные списки. В черных списках указаны пакеты, автоматическое
портирование которых запрещено. Белые списки состоит из пакетов, для
которых портирование разрешено. Остальные пакеты попадают в серый
список. Белые и черные списки делятся на созданные вручную
администратором узла, на котором развернут ПКА Autoports, и
автоматически генерируемые списки. Списки, созданные вручную, имеют
приоритет над автоматически генерируемыми списками.
Примеры генераторов списков:
Занести пакет в белый список, если его RPM tag Group имеет вид Games/*.
Занести пакет в черный список, если он порождает разделяемую
библиотеку, которая используется более чем одним сторонним пакетом.
В настоящее время серый список не используется. Однако в будущем
планируется добавить к системе публичный web-интерфейс, который
позволял бы заказывать автосборку пакетов из серого списка внешним
пользователям. Также планируется дать возможность майнтейнерам пакетов
подписывать свои пакеты на автосборку путем добавления в spec-файле
пакета специальной директивы-комментария.
Результатом работы ПКА Autoports является постоянно обновляемый
репозиторий пакетов RPMS.autoports, публично доступный в сети
Интернет. Текущая обновляемая ветвь репозитория пакетов RPMS.autoports
(autoports/p8) является репозиторием-оверлеем над текущим стабильным
дистрибутивом (branch/p8). Это позволяет разнести разные задачи
обновления по разным бранчам (bugfixes/security fixes для branch/p8,
стабильные обновления для branch/t8, edge-обновления для
autoports/p8+backports/p8) что должно повысить стабильность
дистрибутива в целом.
Пакеты из репозитория пакетов autoports/p8 собираются в чистом
окружении branch/p8. Это позволяет использовать пакеты из
репозитория пакетов autoports для точечного обновления пакетов из
обеих стабильных ветвей branch/p8 и branch/p8. Пакеты из репозитория
пакетов autoports отличаются своим внешним видом (имеют суффикс .A80.x
в релизе пакета), что позволяет легче диагностировать проблемы в
системе для неопытного пользователя. ПКА Autoports производит
портирование пакетов только в последний текущий бранч. В момент
появления нового бранча старая ветвь autoports замораживается, и
создается новая ветвь autoports для нового бранча. В дальнейшем, вся
работа ПКА Autoports проводится с новой ветвью. При этом версии
пакетов в autoports старого бранча остаются всегда меньше версий
пакетов в новом бранче. Такое архитектурное решение выбрано для того,
чтобы не создавать пользователям проблем при обновлении до следующей
стабильной версии дистрибутива. При выходе новой стабильной версии
дистрибутива пользователям предлагается обновить свой дистрибутив до
этой новой стабильной версии, после чего в дальнейшем они смогут
пользоваться уже новой ветвью autoports для нового бранча.
Основной программой ПКА Autoports является скрипт autoports-daily,
запускаемый периодически (с помощью crontab). Цикл работы скрипта
autoports-daily следующий:
запустить скрипты-генераторы черных и белых списков для синхронизации
с текущим сизифом:
слить ручные и автоматические черные и белые списки в один текущий
список пакетов, подлежащих портированию в стабильный бранч;
пройти по всем пакетам из текущего списка, сравнивая их версию-релиз с
версией-релизом (с учётом суффиксов портирования) в p8/branch,
p8/autoports. Если версия-релиз пакета в нестабильной
ветке репозитория СПО Sisyphus больше, чем во всех указанных
репозиториях (с учётом суффиксов портирования), то проверяется
дополнительно, не проводилась ли раньше неудачная попытка
бекпортирования и не истек ли ее тайм-аут, и, если проверки пройдены,
генерируется srpm-пакет для репозитория autoports и производится
попытка его сборки в среде p8/branch. После удачной сборки полученные
бинарные пакеты проверяются на валидность (в том числе, отсутствие
unmets в порождаемом репозитории) и, в случае успеха, перемещаются в
отстойник новособранных пакетов.
В завершение цикла работы происходит подписывание пакетов в отстойнике
новособранных пакетов, вытеснение пакетов из p8/autoports пакетами
из отстойника новособранных пакетов, перегенерация индексов для
репозитория пакетов p8/autoports, что и завершает цикл обновления
репозитория пакетов p8/autoports.
После этого обновленный p8/autoports публично доступен в сети
интернет, а узел, на котором развернут ПКА Autoports, готов к
следующему циклу работы.
--
I V
Подробная информация о списке рассылки community