четверг, 6 февраля 2014 г.

Коллега скатался на FOSDEM 2014

...пишет массу интересного.

Из понравившегося лично мне:

«Зато был показательный доклад от Debian, вполне дающий представление о процессе разработки этого дистрибутива — доклад назывался Reproducible Builds for Debian и, как нетрудно догадаться, был посвящен проблеме невоспроизводимости сборок многих пакетов в этой системе. То есть на основе одного и того же исходного кода и при использовании штатных инструментов Debian у разных разработчиков могут получиться несколько различные приложения, а какой из них попадет в репозитории — загадка. Так что исправив небольшую ошибку и пересобрав пакет, мэйнтейнер может случайно внести в него и еще ряд изменений по сравнению с предыдущей версией, обусловленные изменением сборочного окружения. Наличие проблемы создатели Debian признают, но вместо создания единой среды сборки типа ABF, OBS или Koji, которая была бы единственным источником пакетов в репозиториях, они предпочитают работать над «допилкой» инструментов сборки. Согласно тезисам доклада, после некоторой доработки инструментария в ходе массового эксперимента в сентябре идентичность сборок была достигнута для 1200 из 5000 пакетов. Авторы считают это неплохим достижением и потихоньку двигаются вперед.»

«Для достижения кросс-дистрибутивности Listaller использует в качестве бэкенда хорошо известные PackageKit. Для решения проблемы зависимостей автор Listaller, не мудрствуя лукаво, предложил статически линковать приложение со всем, чем нужно. Вопрос отслеживания ошибок/уязвимостей в библиотеках, которые оказались встроены в приложение? Ну да, хороший вопрос, ну так что поделать — такова цена универсальности, придется в случае багов в библиотеке пересобирать и обновлять приложение. Заодно автор объяснил ненужность всяких post-скриптов в пакетах, пообещав, что Listaller выполнит все, что надо, автоматом — запустит ldconfig в случае установки библиотеки, перезапустит http-сервер при установке веб-приложения и так далее. В общем, Listaller умеет делать примерно то же самое, что файловые триггеры в нашем rpm5. А опыт использования файловых триггеров показывает, что несмотря на все свое удобство, предусмотреть все возможные ситуации и совсем избавиться от post-скриптов они не позволяют даже в рамках одного дистрибутива. Да и кросс-дистрибутивность многих файловых триггеров тоже вызывает сомнения.

В общем, подход Listaller на деле оказывается даже более ограниченным, чем способ, рекомендованный стандартом Linux Standard Base (LSB) еще десять лет назад. LSB рекомендует создавать пакеты формата RPM (и устанавливать их в debian-based системах с помощью alien), не делать никаких внешних зависимостей, кроме «lsb» (а любой дистрибутив, совместимый со стандартом, эту зависимость предоставляет), но при этому советует статически линковать только те библиотеки, которые не входят в LSB. Так что по крайней мере можно не линковать статически Qt, Gtk, ALSA и другие распространенные библиотеки.
»

Рекомендую почитать полный текст по ссылке. Там реально интересно. Хотя и очень много.

Комментариев нет:

Отправить комментарий