Mib-report - еще одна утилита в помощь мэйнтейнерам

Материал из Rosalab Wiki
Перейти к: навигация, поиск


Вот уже несколько месяцев мы используем Updates Builder для автоматического обновления пакетов в наших репозиториях. Инструмент неплохо справляется со своей задачей и количество обновленных с помощью него пакетов исчисляется сотнями. Однако практика показала, что одно из узких мест автоматического обновления - это не сам инструментарий, а передаваемая ему на вход информация. Дело в том, что Updates Builder собирает новые версии пакетов на основе данных, получаемых от Upstream Tracker'а. Тот, в свою очередь, проводит мониторинг апстрим-проектов на основе ссылок на исходный код, содержащихся в spec-файлах пакетов RPM. Но эти ссылки часто отсутствуют, а если они и есть, то не всегда актуальны - ведь обычным пользователям такая информация не нужна, при сборке пакетов на ABF она тоже не используется, и поэтому мэйнтейнеры не уделяют ей большого внимания. Как следствие, пробелов в колонке "Available in Upstream" на страничке ROSA Updates Tracker хватает.

Но помимо мониторинга апстрима, можно подглядывать и на репозитории других дистрибутивов. И здесь на помощь приходит утилита mib-report, изначально созданная нашими друзьями из группы Mandriva International Backports. Эта утилита сравнивает версии пакетов в разрабатываемых репозиториях десяти дистрибутивов:

  • Rosa Desktop Fresh
  • OpenMandriva Cooker
  • Mageia Cauldron
  • PCLinuxOS
  • OpenSUSE Factory
  • Alt Linux Sisyphus
  • Fedora Rawhide (с учетом RpmFusion)
  • Gentoo
  • Debian
  • Ubuntu

При этом mib-report не просто сравнивает версии пакетов, но для RPM-based дистрибутивов выдает ссылки на Source RPM пакет:

$ mib-report --search firefox
Searching for package firefox...
Rosa: 25.0
http://abf-downloads.rosalinux.ru/rosa2012.1/repository/SRPMS/main/updates/firefox-25.0-1.src.rpm
Cooker: 25.0.1
http://abf-downloads.rosalinux.ru/cooker/repository/SRPMS/main/release/firefox-25.0.1-1.src.rpm
Mageia: 24.1.0
http://distrib-coffee.ipsl.jussieu.fr/pub/linux/Mageia/distrib/cauldron/SRPMS/core/release/firefox-24.1.0-1.mga4.src.rpm
Fedora: 25.0
http://mirror.yandex.ru/fedora/linux/development/rawhide/source/SRPMS/f/firefox-25.0-3.fc21.src.rpm
PCLinuxOS: 25.0
http://distrib-coffee.ipsl.jussieu.fr/pub/linux/pclinuxos/pclinuxos/srpms/SRPMS.pclos/firefox-25.0-1pclos2013.src.rpm
Sisyphus: 25.0
http://mirror.yandex.ru/altlinux/Sisyphus/files/SRPMS/firefox-25.0-alt1.src.rpm
Gentoo: 25.0
http://packages.gentoo.org/package/firefox
Ubuntu: 25.0
http://packages.ubuntu.com/firefox
Homepage URL:
http://www.mozilla.com/firefox/

А внутри SRPM-пакетов можно найти и архив с исходным кодом! Так что даже если мы не можем автоматически найти самую свежую версию программы в апстриме, мы можем "подсмотреть", что имеется в других дистрибутивах. И если у них есть версия новее - то можно взять SRPM-пакет и вытащить из него тарболлы с новым исходным кодом. Заодно обновить URL в нашем пакете, чтобы в следующий раз уже не лазить к соседу.

Именно такую возможность мы и внедряем сейчас в наш инструментарий автоматического обновления пакетов - теперь он будет учитывать не только информацию от Upstream Tracker, но и данные от mib-report. Хотелось бы подчеркнуть, что из SRPM-пакетов других дистрибутивов мы извлекаем только архивы с исходным кодом, а ни в коем случае не патчи (поскольку без вмешательства человека сложно понять, актуален ли патч для нас или нет) и не spec-файлы (поскольку у нас есть все основания считать, что наши spec-файлы - одни из самых простых и понятных, и нет нужды загромождать их монструозными конструкциями, используемыми во многих других дистрибутивах).

В общем, если обновление пакета сводится к пересборке нового тарболла из апстрима - то почему бы не поручить это дело роботам? Для людей найдутся и более интересные занятия, которые принесут гораздо больше пользы и пользователям, и апстрим-разработчикам. Ведь наверняка апстрим больше заинтересован в том, чтобы мэйнтейнеры дистрибутивов работали над улучшением их продуктов и присылали в апстрим патчи, а не соревновались - кто быстрее обнаружит выход новой версии.

[ Хронологический вид ]Комментарии

(нет элементов)

Войдите, чтобы комментировать.