Новости и события » Hi-Tech » Проект Debian запретил включение в пакеты специфичных для вендоров патчей

Проект Debian запретил включение в пакеты специфичных для вендоров патчей

Технический комитет проекта Debian принял решение запретить использование специфичных для вендоров (секция vendor-specific) патчей в пакетах. Наличие подобных патчей в репозитории теперь будет приравниваться к наличию в них ошибки с необходимостью ее устранения. После выхода Debian 10 "Buster" использование секции vendor-specific в пакетах будет запрещено.

Комитет пришел к заключению, что пакеты, по разному ведущие себя в разных дистрибутивах, должны распространяться в отдельных исходных пакетах. Специфичные изменения также могут применяться с использованием существующих в dpkg условных операторов или применения патчей в процессе сборки, но не на уровне подстановки разных патчей на стадии распаковки исходного пакета. В качестве причины запрета также упоминается возникновение проблем с отладкой ошибок и несовместимость с используемыми проектом инструментами для обработки патчей, такими как dgit.

Секция vendor-specific позволяет определить альтернативный набор патчей, который будет применяться при распаковке исходного пакета в других дистрибутивах (напрмер, выполнение "dpkg-source -x foo.dscdpkg-source -x foo.dsc" в Debian и Ubuntu приведет к применению разных наборов патчей к распакованным исходным текстам). Данная секция активно используется разработчиками Ubuntu для включения специфичных для Ubuntu исправлений, что позволяет поддерживать один общий пакет и для Debian и для Ubuntu. Подобный подход упрощает сопровождение производных от Debian дистрибутивов, так как не требует поддержки отдельных ответвлений пакетов с небольшими изменениями, которые можно распространять в основном Debian-пакете.

С другой стороны, на основе одного исходного пакета формируется несколько вариантов сборок, что приводит к путанице при разборе поступающих от пользователя уведомлений об ошибках и при выпуске обновлений. Обычно исходные пакеты в Debian поставляются в форме переносимых архивов (tar), разбирая подобный архив в другом дистрибутиве пользователь может полагать, что будет применен основной набор патчей, в то время как будет задействованы другие патчи из секции vendor-specific. Кроме того, в случае обновления только специфичных для вендоров патчей возникает замешательство, так как пакет не требует обновления в Debian, но при этом изменился.

Что касается отладки, она усложняется так как ошибка может проявляться только при активации дополнительных патчей, что требует определения какой вариант пакета приводит к проблеме и воссоздания условий его использования. Например, кто-то может попытаться использовать Debian для разбора ошибки в Ubuntu и загрузит для этого пакет из репозитория Ubuntu, но так как пакет общий с Debian он соберется с другими патчами и поведение приложения будет отличаться от поведения в Ubuntu, но для разработчика это будет не очевидно.

Вместо секции vendor-specific для выделения специфичного для других дистрибутивов изменений предлагается использовать условные операторы, например, "ifdef ubuntu". Подобные изменения видны в коде и при разборе изменений сразу позволяют понять логику применения предлагаемых исправлений. Кроме того, применение условных конструкций не создает проблем при использовании утилит, таких как dgit.


Самолигирующие брекеты: революция в ортодонтической технологии

Самолигирующие брекеты: революция в ортодонтической технологии

Ортодонтические брекеты – один из наиболее распространенных методов коррекции при различных дефектах прикуса и расположения зубов. Традиционные брекеты эффективны, но они требуют регулярных деликатных регулировок для достижения желаемых результатов. К...

сегодня 12:58

Свежие новости Украины на сегодня и последние события в мире экономики и политики, культуры и спорта, технологий, здоровья, происшествий, авто и мото

Вверх