Updates builder
Updates-builder - это утилита для автоматического отслеживания обновлений ПО для пакетов и сборки новых версий в ABF.
Исходный код
Исходный код можно посмотреть здесь: https://abf.rosalinux.ru/dsilakov/updates_builder/tree/master?
Пример
Возьмем в качестве примера пакет alleyoop. У нас в репозиториях лежит версия 0.9.7 и мы хотим посмотреть, есть ли обновления в апстриме:
$ updates_builder.py --run-one alleyoop <...> alleyoop-0.9.8 https://sourceforge.net/projects/alleyoop/files/alleyoop/alleyoop-0.9.8/alleyoop-0.9.8.tar.gz <...> Creating a new spec file Downloading file https://sourceforge.net/projects/alleyoop/files/alleyoop/alleyoop-0.9.8/alleyoop-0.9.8.tar.gz done
Ага, есть более новая версия! updates_builder ее скачал и поместил тарболл с исходниками в файловое хранилище ABF, обновил .abf.yml и spec-файл и запустил новую сборку.
Все эти изменения происходят в отдельной ветке Git-репозитория - auto_update. Сборка запускается для платформы rosa2012.1, но результаты будут публиковаться в репозиторий import_personal. Более того, автоматическая публикация для этих сборок отключена - поэтому пакеты необходимо скачивать из соответствующих контейнеров (либо явно запускать публикацию).
Теперь надо убедиться, что новый пакет успешно собрался (если вы подписаны на оповещения по e-mail от ABF, то вам должно придти письмо с результатами сборки). Если сборка завершилась успешно, то вы можете скачать пакет и проверить, что он устанавливается и работает. Если все в порядке, то можно перенести изменения в основную ветку и собрать пакет в нормальный репозиторий.
Для начала, клонируем проект alleyoop с помощью консольного клиента ABF:
$ abf get alleyoop; cd alleyoop $ git checkout auto_update
Посмотрите обновленный файл .abf.yml, а также spec-файл; при необходимости, подправьте их.
После этого, переключитесь на ветку rosa2012.1 и перенесите изменения туда:
$ git checkout rosa2012.1 $ git merge auto_update $ abf put -m "LOG Updated to 0.9.8"
Вот и все! Теперь можно запустить сборку обновленного пакета для платформы rosa2012.1 из ветки rosa2012.1.
Технические подробности
Для получения информации о новых релизах, updates_builder использует сервис http://upstream-tracker.org. Если вы хотите, чтобы updates_builder отслеживал некоторый пакет, для которого нет ссылки на апстрим - сообщите об этом мэйнтейнеру сервиса upstream-tracker.org.
Обратите внимание, что для работы с ABF updates_builder использует консольный клиент из пакета abf-console-client.