http://wiki.rosalab.ru/ru/api.php?action=feedcontributions&user=Andrey+Bondrov&feedformat=atomRosalab Wiki - Вклад участника [ru]2024-03-29T12:56:18ZВклад участникаMediaWiki 1.26.4http://wiki.rosalab.ru/ru/index.php?title=%D0%91%D0%BB%D0%BE%D0%B3:%D0%A2%D0%BE%D1%87%D0%BA%D0%B0_%D0%A0%D0%BE%D1%81%D1%8B/Mib-report_-_%D0%B5%D1%89%D0%B5_%D0%BE%D0%B4%D0%BD%D0%B0_%D1%83%D1%82%D0%B8%D0%BB%D0%B8%D1%82%D0%B0_%D0%B2_%D0%BF%D0%BE%D0%BC%D0%BE%D1%89%D1%8C_%D0%BC%D1%8D%D0%B9%D0%BD%D1%82%D0%B5%D0%B9%D0%BD%D0%B5%D1%80%D0%B0%D0%BC&diff=11437Блог:Точка Росы/Mib-report - еще одна утилита в помощь мэйнтейнерам2014-05-25T13:34:19Z<p>Andrey Bondrov: </p>
<hr />
<div><!-- Смело пишите здесь свою заметку. Можно использовать все возможности вики, включать картинки и другие статьи — все они автоматически отреплицируются наружу --><br />
<br />
Вот уже несколько месяцев мы используем {{prog|Updates Builder}} для автоматического обновления пакетов в наших репозиториях. Инструмент неплохо справляется со своей задачей и количество обновленных с помощью него пакетов [http://fba.rosalinux.ru/modified_packages/?platform=rosa2012.1&since_date=2013.10.19&for_date=2013.11.19 исчисляется сотнями]. Однако практика показала, что одно из узких мест автоматического обновления — это не сам инструментарий, а передаваемая ему на вход информация. Дело в том, что {{prog|Updates Builder}} собирает новые версии пакетов на основе данных, получаемых от {{prog|Upstream Tracker}}'а. Тот, в свою очередь, проводит мониторинг апстрим-проектов на основе ссылок на исходный код, содержащихся в spec-файлах пакетов RPM. Но эти ссылки часто отсутствуют, а если они и есть, то не всегда актуальны — ведь обычным пользователям такая информация не нужна, при сборке пакетов на ABF она тоже не используется, и поэтому мэйнтейнеры не уделяют ей большого внимания. Как следствие, пробелов в колонке «Available in Upstream» на [http://upstream-tracker.org/updates/rosa/2012/ страничке ROSA Updates Tracker] хватает.<br />
<br />
Но помимо мониторинга апстрима, можно подглядывать и на репозитории других дистрибутивов. И здесь на помощь приходит утилита [http://mib.pianetalinux.org/mib-report/ mib-report], изначально созданная нашими друзьями из группы [http://mib.pianetalinux.org/ Mandriva International Backports]. Эта утилита сравнивает версии пакетов в разрабатываемых репозиториях 11 дистрибутивов:<br />
<br />
* Rosa Desktop Fresh<br />
* OpenMandriva Cooker<br />
* Mageia Cauldron<br />
* Fedora Rawhide (с учетом RpmFusion)<br />
* PCLinuxOS<br />
* Alt Linux Sisyphus<br />
* OpenSUSE Factory<br />
* PLD<br />
* Gentoo<br />
* Debian<br />
* Ubuntu<br />
<br />
При этом {{prog|mib-report}} не просто сравнивает версии пакетов, но для RPM-based дистрибутивов выдает ссылки на Source RPM пакет:<br />
<br />
<pre><br />
$ mib-report --search firefox<br />
Searching for package firefox…<br />
Rosa: 25.0<br />
http://abf-downloads.rosalinux.ru/rosa2012.1/repository/SRPMS/main/updates/firefox-25.0-1.src.rpm<br />
Cooker: 25.0.1<br />
http://abf-downloads.rosalinux.ru/cooker/repository/SRPMS/main/release/firefox-25.0.1-1.src.rpm<br />
Mageia: 24.1.0<br />
http://distrib-coffee.ipsl.jussieu.fr/pub/linux/Mageia/distrib/cauldron/SRPMS/core/release/firefox-24.1.0-1.mga4.src.rpm<br />
Fedora: 25.0<br />
http://mirror.yandex.ru/fedora/linux/development/rawhide/source/SRPMS/f/firefox-25.0-3.fc21.src.rpm<br />
PCLinuxOS: 25.0<br />
http://distrib-coffee.ipsl.jussieu.fr/pub/linux/pclinuxos/pclinuxos/srpms/SRPMS.pclos/firefox-25.0-1pclos2013.src.rpm<br />
Sisyphus: 25.0<br />
http://mirror.yandex.ru/altlinux/Sisyphus/files/SRPMS/firefox-25.0-alt1.src.rpm<br />
Gentoo: 25.0<br />
http://packages.gentoo.org/package/firefox<br />
Ubuntu: 25.0<br />
http://packages.ubuntu.com/firefox<br />
Homepage URL:<br />
http://www.mozilla.com/firefox/<br />
</pre><br />
<br />
А внутри {{file|SRPM-пакетов}} можно найти и архив с исходным кодом! Так что даже если мы не можем автоматически найти самую свежую версию программы в апстриме, мы можем «подсмотреть», что имеется в других дистрибутивах. И если у них есть версия новее — то можно взять {{file|SRPM-пакет}} и вытащить из него тарболлы с новым исходным кодом. Заодно обновить URL в нашем пакете, чтобы в следующий раз уже не лазить к соседу.<br />
<br />
Именно такую возможность мы и внедряем сейчас в наш инструментарий автоматического обновления пакетов — теперь он будет учитывать не только информацию от {{prog|Upstream Tracker}}, но и данные от {{prog|mib-report}}. Хотелось бы подчеркнуть, что из {{file|SRPM-пакетов}} других дистрибутивов мы извлекаем только архивы с исходным кодом, а ни в коем случае не патчи (поскольку без вмешательства человека сложно понять, актуален ли патч для нас или нет) и не spec-файлы (поскольку у нас есть все основания считать, что наши spec-файлы — одни из самых простых и понятных, и нет нужды загромождать их монструозными конструкциями, используемыми во многих других дистрибутивах).<br />
<br />
В общем, если обновление пакета сводится к пересборке нового тарболла из апстрима — то почему бы не поручить это дело роботам? Для людей найдутся и более интересные занятия, которые принесут гораздо больше пользы и пользователям, и апстрим-разработчикам. Ведь наверняка апстрим больше заинтересован в том, чтобы мэйнтейнеры дистрибутивов работали над улучшением их продуктов и присылали в апстрим патчи, а не соревновались — кто быстрее обнаружит выход новой версии.<br />
<br />
<br />
<poll><br />
ALTERNATIVE<br />
OPEN_RESULTS<br />
UNSAFE_ID=good-news-2013-12-30<br />
Надеюсь, эта новость вас…<br />
Ввела в экстаз <tt>^_^</tt><br />
Порадовала <tt>:)</tt><br />
Оставила равнодушным <tt>-_-</tt><br />
Огорчила <tt>:(</tt><br />
</poll><br />
<br />
[[Category:ToROSAPoint]]<br />
{{wl-publish: 2013-12-30 12:08:37 +0400 | Denis.silakov }}</div>Andrey Bondrov