• Shell-архив отсылается во FreeBSD Team с помощью ко манды send-pr (помните, что email в поле MAINTAINER должен совпадать с email в поле From:, иначе замучают расспросами). О том, как использовать send-pr см. man send-pr. Некоторая информация о том, как отправить порт приведена также в [5].
• Дожидаетесь ответа от одного из коммиттеров FreeBSD о том, что порт успешно помещен в дерево портов или же о том, что при тестировании порта возникли ошибки. Все присылаемые в FreeBSD Team порты тестируются ими на предмет правильной сборки, установки и удаления под всеми поддерживаемыми в данный момент ветками FreeBSD. Сообщение об ошибке может выглядеть, например так:
Synopsis: [maintainer-update] Updating mail/sccmilter up to 0.94.9 version
State-Changed-From-To: open->feedback
State-Changed-By: krion
State-Changed-When: Fri Feb 18 14:33:28 GMT 2005
State-Changed-Why:
It does not honour PREFIX, it's not very critical since it builds
for LOCALBASE,
but I'd like to see the PREFIX honoured though.
cc -pthread -L/var/tmp/ttt/lib -L.libs -o sccmilter sccmilter.o globals.o utilites.o mlficatch.o parseconfig.о commandline.о -lmilter -lconf /usr/bin/ld: cannot find -lconf
http://www.freebsd.org/cgi/query-pr.cgi?pr=77 679
В этом сообщении всегда указывается причина ошибки и диагностика. Все общение с FreeBSD Team происходит, естественно, на английском языке, несмотря на то, что есть и русскоязычные коммиттеры (например, письмо, приведенное выше, получено от Кирилла Пономарева (krion@freebsd.org). Сообщение об успешном помещении в дерево портов может выглядеть так:
Synopsis: new port: sysutils/spassgen
State-Changed-From-To: open->closed
State-Changed-By: pav
State-Changed-When: Sat Jul 31 09:26:28 GMT 2004
State-Changed-Why:
New port added, thank you!
http://www.freebsd.org/cgi/query-pr.cgi?pr=69748
После чего останется только обновить дерево портов и убедиться, что да, на самом деле порт в нем присутствует. С этого момента майнтайнер порта отвечает за его актуальное состояние- своевременное обновление в соответствии с новыми версиями программы, внесение нужных патчей и удаление устаревших. Как скоро ожидать ответа от FreeBSD Team? На этот вопрос трудно дать определенный ответ. Иногда они реагируют буквально в течение недели, а иногда приходится ждать несколько месяцев. Внесения в дерево своего первого порта, kavmilter, я ждал больше года, а например, spassgen прошел за неделю.
Кроме того, FreeBSD Team временами самостоятельно вносит некоторые изменения в файлы портов, когда проводится какая-либо глобальная модификация системы в целом. Если вдруг по каким-либо причинам порт перестанет собираться, майнтайнеру будет отправлено соответствующее извещение. Если майнтайнер не устранит ошибку и не пришлет соответствующий патч, исправляющий ситуацию, порт может быть помечен как BROKEN. Как правило, порты, помеченные как BROKEN, удаляются из дерева если они находятся в таком состоянии более 3 месяцев.
Заключение
Вот и готов наш первый порт. Он вышел чрезвычайно простым, мы не затронули и пятой части возможностей системы сборки портов. Но мы сделали одну чрезвычайно важную работу - убедились в том, что круг программного обеспечения, который может работать под FreeBSD вовсе не ограничивается тем, что присутствует в каталоге портов (несмотря на то, что на текущий момент там присутствует более 14000 программ), и в том, что создать порт под FreeBSD своими руками - это не такая уж и сложная задача. В следующей статье мы задействуем более сложные возможности системы - многофайловые дистрибутивы, экран опций, перехват управления при сборке, использование внешних патчей...