OpenBSD Порты - руководство по тестированию [Порты - На главную]



Введение

Дерево портов это колоссальная работа, результат которой позволяет каждому пользоватю OpenBSD исользовать third party программы без необходимости тратить время на изучение тонкостей их работы, внесение необходимых изменений (с целью запустить программы именно в среде OpenBSD), конфигурацию и установку. Вся эта работа проделывается группой волонтеров, кто тратит время и силы на портирование и тестирование приложений в OpenBSD.

Многие думают, что они не могут помочь по причине того, что не обладают достаточной для этого процесса квалификацией. Это не верно. Каждый может помочь разработчикам (тем, кто занимается портированием софта) делать свою работу лучше и быстрее. Тестируйте обновления или новые порты, о которых сообщается в рассылке, посвященной портам. Делая это, вы уменьшаете задержку последюущих коммитов, а также увеличиваете количество портов, добавляемых в саму систему. Многие порты не добавленны лишь по причине того, что они до сих пор не протестированны.

Работа над новыми портами ведется в -current; нет никакой гарантии, что новые порты или их обновления будут корректно работать в других версиях (branches). Это значит, что вы должны обновить свою систему и дерево портов до -current. Инструкцию, где описывается как это сделать, можно найти на странице посвященной current. Также рекомендуется подписаться на рассылки ports и ports-changes. Это поможет быть в курсе новых изменений в дереве портов и их обновлений.

Тестирование

В почтовых рассылках есть два типа материалов: новые порты и обновления. О новых портах как правило сообщается в письмах, к которым прикрепляются архив (tarball) или ссылка на него. Хорошей идеей будет распаковать его в каталоге /usr/ports/mystuff/ и протестировать там. Обновления как правило представляют из себя diff для дерева портов в -current. Лучше всего скопировать порт в mystuff/ и использовать diff, чтобы предотвратить поломку всего дерева. Если установлена предыдущая версия порта, рекомендуется удалить ее перед сборкой более новой версии, чтобы избежать побочных эффектов, таких как символы, отсутствующие в более старой версии библиотеки.

Необходим процесс пошаговой сборки, чтобы быть уверенным, что каждый target, смотри ports(7), правильно собран (achieved correctly):

Оставшиеся pkg/ файлы, такие как DESCR и MESSAGE, должны быть проверены на грамматику и опечатки. Абзацы должны быть отформатированы с использованием fmt(1) по 80 символов на строку.

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

В конце теста наконец-то действительно важная вещь: комментарии. Даже если порт работает нормально, комментарии должны быть сделаны. Если у нас есть десять комментариев, в которых люди говорят, что порт работает нормально под разными архитектурами, то добавление порта в репозиторий произойдет быстрее. Если что-то не работает, то соответствующая информация должна быть предоставлена. Есть инструменты, которые могут помочь в на этом этапе, например portslogger(1), который похож на «интеллигентный tee(1)», который перенаправляет вывод в log-файл.

Пример:

# make install 2>&1 | /usr/ports/infrastructure/bin/portslogger .
Это перенаправит вывод в log-файл, находящийся в этом же каталоге.

Наконец, как только будет установлено, что порт исправен, следует проверить и другие порты, зависящие от него, чтобы убедиться, что и они по-прежнему работают правильно. Target show-required-by поможет найти другие порты, которые зависят от него.

И снова тестирование

Проверьте Makefile порта на правильные зависимости, опечатки, неправильные ссылки, бесполезные или отсутствующие переменные, правильное лицензирование и категорию. Те, кто более опытен, могут помочь, изучив патчи, а также предоставив diff для исправления ошибок или других улучшений.

Эти diff(s) должны быть сделаны с опциями -uNprx CVS. cvs diff -uNp также можно использовать для создания патчей для CVS репозитория.