Многие думают, что они не могут помочь по причине того, что не обладают достаточной для этого процесса квалификацией. Это не верно. Каждый может помочь разработчикам (тем, кто занимается портированием софта) делать свою работу лучше и быстрее. Тестируйте обновления или новые порты, о которых сообщается в рассылке, посвященной портам. Делая это, вы уменьшаете задержку последюущих коммитов, а также увеличиваете количество портов, добавляемых в саму систему. Многие порты не добавленны лишь по причине того, что они до сих пор не протестированны.
Работа над новыми портами ведется в -current; нет никакой гарантии, что новые порты или их обновления будут корректно работать в других версиях (branches). Это значит, что вы должны обновить свою систему и дерево портов до -current. Инструкцию, где описывается как это сделать, можно найти на странице посвященной current. Также рекомендуется подписаться на рассылки ports и ports-changes. Это поможет быть в курсе новых изменений в дереве портов и их обновлений.
/usr/ports/mystuff/
и протестировать там.
Обновления как правило представляют из себя diff для дерева портов в -current.
Лучше всего скопировать порт в mystuff/
и использовать diff,
чтобы предотвратить поломку всего дерева.
Если установлена предыдущая версия порта, рекомендуется удалить ее перед
сборкой более новой версии, чтобы избежать побочных эффектов, таких как
символы, отсутствующие в более старой версии библиотеки.
Необходим процесс пошаговой сборки, чтобы быть уверенным, что каждый target, смотри ports(7), правильно собран (achieved correctly):
MASTER_SITES
, чтобы
убедиться, что все они являются рабочими (valid sources).
distinfo
файле.
Вы можете повторно запустить make clean=dist && make makesum
и убедиться, что ничего не изменилось.
prepare
запускается автоматически до extract
.
Его задача - установить все {BUILD,LIB}_DEPENDS
для этого порта
(такие как bzip2).
patches/
не должно оставаться никаких ".orig" файлов.
USE_LIBTOOL=gnu
, которая использует исправленную
версию (patched version) из портов. GNU libtool печально известен своими
нежелательными «возможностями» в OpenBSD, поэтому, если порт не собирается
с помощью libtool из base, это должно быть исправлено, а в исходниках
порта должен быть комментарий о том, почему в порте используется
Makefile
.
${WRKBUILD}/CMakeCache.txt
${WRKBUILD}/CMakeFiles/CMakeError.log
${WRKBUILD}/CMakeFiles/CMakeOutput.log
SEPARATE_BUILD
значение 'Yes'
и попробуйте после этого пересобрать порт снова. Все должно работать.
{BUILD,RUN}_DEPENDS
, убедитесь, что TEST_DEPENDS
определен правильно.
/usr/local
.
LIB_DEPENDS
или WANTLIB
.
Результат должен быть пустым.
Перечисленные выше переменные следует проверять, когда вы видите строки,
начинающиеся с «Extra» или «Missing».
pkg/PLIST*
и/или
pkg/PFRAG*
неправильны.
INSTALL
, принадлежащий пакету,
делает именно то, что должен, и ни в коем случае ничего (ни одного файла)
не перезаписывает в /etc
.
/etc
.
@extra
и/или
@extraunexec
в pkg/PLIST*
.
Оставшиеся pkg/
файлы, такие как DESCR
и
MESSAGE
, должны быть проверены на грамматику и опечатки.
Абзацы должны быть отформатированы с использованием
fmt(1) по 80 символов на строку.
Пример:
# make install 2>&1 | /usr/ports/infrastructure/bin/portslogger .Это перенаправит вывод в log-файл, находящийся в этом же каталоге.
Наконец, как только будет установлено, что порт исправен, следует проверить
и другие порты, зависящие от него, чтобы убедиться, что и они по-прежнему
работают правильно. Target show-required-by
поможет найти другие
порты, которые зависят от него.
Makefile
порта на правильные зависимости, опечатки,
неправильные ссылки, бесполезные или отсутствующие переменные, правильное
лицензирование и категорию. Те, кто более опытен, могут помочь, изучив
патчи, а также предоставив diff для исправления ошибок или других улучшений.
Эти diff(s) должны быть сделаны с опциями -uNprx CVS
.
cvs diff -uNp
также можно использовать для создания патчей для
CVS репозитория.