• EXTRACT_ONLY=yes— только распаковать файлы дистрибутива, не выполнять никакой работы по сборке. Как правило, в таком порту применяется заменяющая подмишень do-install.
• RESTRICTED=yes— запрещает помещать собранный пакет на FTP или распространять на CD-ROM. Как правило вследствие лицензионных ограничений. Это не такая уже редкость, например такое ограничение имеет виртуальная машина Java.
• NO_CDROM=yes— почти то же самое, только разрешает помещение на FTP.
• FORBIDDEN=yes— запрещает сборку из-за уязвимостей программы.
• IGNORE=yes— запрещает сборку из-за грубых ошибок при сборке программы. Фактически используется для прекращения работы системы по каким-либо причинам (например, неподдерживаемая версия FreeBSD).
• BROKEN=yes— запрещает сборку из-за различных ошибок.
• USE_ZIP=yes— для распаковки использовать zip.
• USE_DOS2UNIX=yes— все тексты перекодировать таким образом, чтобы преобразовать переводы строк из вида DOS в вид UNIX.
• USE_GCC=<���номер>— задает номер версии компилятора GCC. Я помню только один порт, использовавший эту USE_* — editors/openoffice на 4.х, имевший по умолчанию GCC 2.95.4.
• USE_GETOPT_LONG=yes— для 4.х добавляет зависимость от libgnugetopt. Для 5.х и выше уже неактуально — libgnugeopt перенесена в базовую систему.
• USE_PERL=yes, USE_JAVA=yes, USE_PYTHON=yes,
USE_RUBY=yes— добавляют соответствующие зависимости от интерпретатора соответствующего языка.
• USE_AUTOTOOLS=:— добавляет зависимость от некоторой программы из GNU Autotools. Если задана и программа и версия, задает зависимость от конкретной версии, если версия опущена, то задает зависимость от программы без номера в имени. Например: «USE_AUTOTOOLS=libtool:15» задает зависимость от devel/libtool15, но «USE_AUTOTOOLS=libtool» задает зависимость от devel/libtool, что может быть совсем не одно и то же!
• USE_GNOME=<���список компонентов через пробел>— задает зависимости от перечисленного списка компонентов GNOME. Например, приведенная выше строка: «USE_GNOME+= orbit gtk12» задает зависимости от компонентов devel/orbit и x11-toolkits/gtk12. При задании зависимостей следует придерживаться разумного минимума — указывать только те компоненты, которые действительно нужны для работы. Помните, что подключенные компоненты тоже имеют свои зависимости, которые могут иметь свои зависимости и т. д. — глубина вложенности неограничена.
• USE_QT_VER=3— добавляет зависимость от библиотеки x11-toolkits/qt33 и неявно подключает файл bsd.kde.mk.
• USE_LINUX={yes|<���число>}— добавляет зависимость от порта emulators/linux-base-8, если не указано <���число>. Если <���число> указано, то добавляется зависимость от порта emulators/linux-base-<���число>.
• CONFLICTS=<���список портов>— содержит список портов, с которыми может конфликтовать данный порт. Конфликт может выражаться в совпадающих именах каталогов для установки, совпадающих именах файлов, одинаковых TCP/UDP-портах, невозможность сборки одного порта при наличии другого и прочих причинах. Выражение для списка портов может содержать мета-символы «*?[]!». Например, «apache*-1.3.[012345]».
Наша работа закончена, но жизнь продолжается… Мы рассмотрели основные возможности системы сборки портов. Однако далеко не для каждого порта требуется такое количество работы — для многих несложных программ порт от начала до конца, включая отсылку во FreeBSD Team, пишется за полдня. Система сборки портов обладает очень большими возможностями. Изучать их все нет необходимости — всегда можно заглянуть в bsd.port.mk, который и является главным справочником по ее возможностям.
В начале файла идет громадный блок комментария, в котором перечислены все переменные, которые можно использовать, и даны к ним краткие описания, для чего они предназначены. Число программ, которые работают под FreeBSD, постоянно увеличивается, порты для них пишутся, как мы теперь видим, обычными людьми, и, создавая новый порт для программы, которая там в данный момент отсутствует, мы не только облегчаем себе жизнь, но и помогаем сообществу.
Ачилов Р. Порт для FreeBSD своими руками. Часть первая — основные возможности. Журнал «Системный администратор», № 3, март 2006 г. — 32–38 с.
Руководство FreeBSD по созданию портов — http://www.ru.freebsd.org/doc/ru_RU.KOI8-R/books/porters-handbook/index.html.
Доработанный Makefile из порта editors/openoffice-1.1 — ftp://ftp.granch.ru/pub/openoffice/Makefile.OOo.