Packaging Automation/Преобразование Пакетов: различия между версиями
мНет описания правки |
|||
Строка 38: | Строка 38: | ||
* для каждого входящего аргумента | * для каждого входящего аргумента | ||
** READER возвращает объект преобразуемого пакета (класс {{pkg|RPM::Source::Editor}}). | ** READER возвращает объект преобразуемого пакета (класс {{pkg|RPM::Source::Editor}}). | ||
** библиотека опрашивает объекты из контейнера фабрик преобразований, | ** библиотека опрашивает объекты из контейнера фабрик преобразований, которые в ответ генерируют и возвращают объекты преобразований. | ||
которые в ответ генерируют и возвращают объекты преобразований. | ** Библиотека создает объект шины обмена сообщений и передает объект преобразуемого пакета, контейнер ресурсов, шину обмена сообщений и набор объектов преобразований в текущий объект PLAYER. | ||
** Библиотека создает объект шины обмена сообщений | ** PLAYER последовательно применяет к преобразуемому пакету каждый из объектов преобразований в порядке, отсортированными по приоритету, а с одинаковым приоритетом -- по порядку загрузки плагинов. | ||
и передает объект преобразуемого пакета, контейнер ресурсов, шину обмена сообщений и набор объектов преобразований в текущий объект PLAYER. | |||
** PLAYER последовательно применяет к преобразуемому пакету каждый из объектов преобразований | |||
в порядке, отсортированными по приоритету, а с одинаковым приоритетом -- по порядку загрузки плагинов. | |||
** WRITER сохраняет изменения. | ** WRITER сохраняет изменения. | ||
Каждый плагин | |||
buildroot2files | buildroot2files | ||
hashertarbuild | hashertarbuild | ||
srpmnmu | srpmnmu | ||
srpmtool | srpmtool |
Версия от 15:49, 11 октября 2016
Введение.
В системах автоматизации за преобразование пакетов отвечают утилиты, использующие библиотеку RPM::Source::Transform (сейчас в пакете perl-RPM-Source-Editor).
Эту библиотеку можно расширять различными плагинами, с помощью которых можно решать следующие задачи:
- различные операции по редактированию пакета,
- автообновление пакета до следующей версии Gear/gear-uupdate, Gear/gear-cronbuild, cronbuild, croncopy, cronport
- импорт пакета в формате другого диалекта rpm (fedora, mageia, suse, pld, ...)
- импорт пакета в формате deb из Debian/Ubuntu (в планах).
Принципы работы библиотеки
В библиотеке имеется контейнер ресурсов, контейнер фабрик преобразований, и объекты, имеющие роли READER, PLAYER, WRITER.
Загружаемые плагины добавляют свои объекты в контейнер ресурсов и(ли) контейнер фабрик преобразований, и при необходимости переопределяют объекты для ролей READER, PLAYER, WRITER.
При запуске
- библиотека осуществляет инициализацию объектов из контейнера ресурсов,
контейнера фабрик преобразований, текущих READER, PLAYER, WRITER.
- для каждого входящего аргумента
- READER возвращает объект преобразуемого пакета (класс RPM::Source::Editor).
- библиотека опрашивает объекты из контейнера фабрик преобразований, которые в ответ генерируют и возвращают объекты преобразований.
- Библиотека создает объект шины обмена сообщений и передает объект преобразуемого пакета, контейнер ресурсов, шину обмена сообщений и набор объектов преобразований в текущий объект PLAYER.
- PLAYER последовательно применяет к преобразуемому пакету каждый из объектов преобразований в порядке, отсортированными по приоритету, а с одинаковым приоритетом -- по порядку загрузки плагинов.
- WRITER сохраняет изменения.
Каждый плагин
buildroot2files hashertarbuild srpmnmu srpmtool