--- description: 'Макросы USES упрощают объявление требований и настроек для порта FreeBSD' next: books/porters-handbook/versions params: path: /books/porters-handbook/uses/ prev: books/porters-handbook/keeping-up showBookMenu: 'true' tags: ["uses", "macros", "introduction", "guide"] title: 'Глава 17. Использование макроса USES' weight: 17 --- [[uses]] = Использование макроса `USES` :doctype: book :toc: macro :toclevels: 1 :icons: font :sectnums: :sectnumlevels: 6 :sectnumoffset: 17 :partnums: :source-highlighter: rouge :experimental: :images-path: books/porters-handbook/ ifdef::env-beastie[] ifdef::backend-html5[] :imagesdir: ../../../../images/{images-path} endif::[] ifndef::book[] include::shared/authors.adoc[] include::shared/mirrors.adoc[] include::shared/releases.adoc[] include::shared/attributes/attributes-{{% lang %}}.adoc[] include::shared/{{% lang %}}/teams.adoc[] include::shared/{{% lang %}}/mailing-lists.adoc[] include::shared/{{% lang %}}/urls.adoc[] toc::[] endif::[] ifdef::backend-pdf,backend-epub3[] include::../../../../../shared/asciidoctor.adoc[] endif::[] endif::[] ifndef::env-beastie[] toc::[] include::../../../../../shared/asciidoctor.adoc[] endif::[] [[uses-intro]] == Введение в `USES` Макросы `USES` упрощают объявление требований и настроек для порта. Они могут добавлять зависимости, изменять поведение при сборке, добавлять метаданные в пакеты и так далее, просто выбирая предустановленные значения. Каждый раздел в этой главе описывает возможное значение для `USES`, а также его возможные аргументы. Аргументы добавляются к значению после двоеточия (`:`). Несколько аргументов разделяются запятыми (`,`). [[uses-intro-ex1]] .Использование нескольких значений [example] ==== [.programlisting] .... USES= bison perl .... ==== [[uses-intro-ex2]] .Добавление аргумента [example] ==== [.programlisting] .... USES= tar:xz .... ==== [[uses-intro-ex3]] .Добавление нескольких аргументов [example] ==== [.programlisting] .... USES= drupal:7,theme .... ==== [[uses-intro-ex4]] .Смешивая всё вместе [example] ==== [.programlisting] .... USES= pgsql:9.3+ cpe python:2.7,build .... ==== [[uses-7z]] == `7z` Возможные аргументы: (нет), `p7zip`, `partial` Извлечение с использованием man:7z[1] вместо man:bsdtar[1] и устанавливает `EXTRACT_SUFX=.7z`. Опция `p7zip` добавляет зависимость от `7z` из package:archivers/p7zip[], если версия из базовой системы не может извлечь файлы. `EXTRACT_SUFX` не изменяется, если используется опция `partial`, это может быть полезно, если основной дистрибутивный файл не имеет расширения [.filename]#.7z#. [[uses-ada]] == `ada` Возможные аргументы: (нет), `6`, `12`, `(запуск)` Зависит от компилятора с поддержкой Ada и устанавливает `CC` соответствующим образом. По умолчанию используется `gcc6-aux` из портов. [[uses-angr]] == `angr` Возможные аргументы: `binaries`, `nose` Обеспечить поддержку портов, требующих https://github.com/angr/angr[платформу бинарного анализа angr]. Если присутствует аргумент `binaries`, для тестирования порта требуются специальные бинарные файлы `angr`. Если присутствует аргумент `nose`, порт использует `nosetests` для цели тестирования. Этот аргумент подразумевает `USES=python:test`. Фреймворк предоставляет следующие переменные, которые могут быть установлены портом: `ANGR_VERSION`:: Версия программ проекта `angr`. `ANGR_BINARIES_TAGNAME`:: Имя тега для бинарных файлов `angr`. `ANGR_NOSETESTS`:: Путь к программе `nosetests`. [[uses-ansible]] == `ansible` Возможные аргументы: `env`, `module`, `plugin` Обеспечивает поддержку портов, зависящих от пакета package:sysutils/ansible[]. Если присутствует аргумент `env`, порт не зависит от package:sysutils/ansible[], но требует установки некоторых переменных Ansible. Если присутствует аргумент `module`, то порт является модулем Ansible. Если присутствует аргумент `plugin`, то порт является плагином Ansible. Фреймворк предоставляет следующие переменные порту: `ANSIBLE_CMD`:: Путь к программе ansible. `ANSIBLE_DOC_CMD`:: Путь к программе ansible-doc. `ANSIBLE_RUN_DEPENDS`:: RUN_DEPENDS с портом Ansible. `ANSIBLE_DATADIR`:: Путь к корню структуры каталогов, где хранятся все модули и плагины Ansible. `ANSIBLE_ETCDIR`:: Путь к каталогу etc Ansible. `ANSIBLE_PLUGINS_PREFIX`:: Путь к каталогу "plugins" в `${ANSIBLE_DATADIR}`. `ANSIBLE_MODULESDIR`:: Путь к каталогу для локальных модулей Ansible. `ANSIBLE_PLUGINSDIR`:: Путь к каталогу для локальных плагинов Ansible. `ANSIBLE_PLUGIN_TYPE`:: Тип плагина Ansible (например, "connection", "inventory" или "vars"). [[uses-apache]] == `apache` Возможные аргументы: (нет), `2.4`, `build`, `run`, `server` Обеспечивает поддержку портов, зависящих от веб-сервера Apache. Аргумент `version` можно использовать для указания конкретной версии Apache httpd. Можно задать определённую версию (`USES=apache:2.4`), минимальную версию (`USES=apache:2.4+`) или максимальную версию (`USES=apache:-2.4`). Если указан аргумент `build`, к порту добавляется зависимость для сборки. Если указан аргумент `run`, к порту добавляется зависимость времени выполнения. Если указан аргумент `server`, это означает, что порт является серверным. Фреймворк предоставляет следующие переменные, которые могут быть установлены портом: `AP_FAST_BUILD`:: Автоматическая сборка модуля `AP_GENPLIST`:: Автоматическое создание `PLIST` плюс добавление модуля в отключенном состоянии в [.filename]#httpd.conf# (только если нет файла `pkg-plist`) `MODULENAME`:: Имя модуля Apache. По умолчанию: `${PORTNAME}` `SHORTMODNAME`:: Краткое название модуля Apache. По умолчанию: `${MODULENAME:S/mod_//}` `SRC_FILE`:: Исходный файл модуля APACHE. По умолчанию: `${MODULENAME}.c` Следующие переменные могут быть доступны для порта: `APACHE_VERSION`:: Основная-вспомогательная версия выбранного сервера Apache, например 2.4 `APACHEETCDIR`:: Расположение каталога конфигурации Apache. По умолчанию: [.filename]#${LOCALBASE}/etc/apache24# `APACHEINCLUDEDIR`:: Расположение include-файлов Apache. По умолчанию: [.filename]#${LOCALBASE}/include/apache24# `APACHEMODDIR`:: Расположение модулей Apache. По умолчанию: [.filename]#${LOCALBASE}/libxexec/apache24# `APACHE_DEFAULT`::Версия Apache по умолчанию [[uses-autoreconf]] == `autoreconf` Возможные аргументы: (нет), `build` Выполняет `autoreconf`. Эта команда объединяет функциональность `aclocal`, `autoconf`, `autoheader`, `automake`, `autopoint` и `libtoolize`. Каждая из этих команд применяется к [.filename]#${AUTORECONF_WRKSRC}/configure.ac# или его старому названию [.filename]#${AUTORECONF_WRKSRC}/configure.in#. Если [.filename]#configure.ac# определяет подкаталоги с их собственными [.filename]#configure.ac# с использованием `AC_CONFIG_SUBDIRS`, `autoreconf` также рекурсивно обновит их. Аргумент `:build` только добавляет зависимости времени сборки на эти инструменты, но не запускает `autoreconf`. Порт может установить `AUTORECONF_WRKSRC`, если `WRKSRC` не содержит путь к [.filename]#configure.ac#. [[uses-azurepy]] == `azurepy` Возможные аргументы: (отсутствуют) Обеспечить поддержку портов `py-azure*`. Удаляет пространства имён `azure` и очищает общие файлы. [[uses-blaslapack]] == `blaslapack` Возможные аргументы: (нет), `atlas`, `netlib` (по умолчанию), `gotoblas`, `openblas` Добавляет зависимости от библиотек Blas / Lapack. [[uses-bdb]] == `bdb` Возможные аргументы: (отсутствуют), `5` (по умолчанию), `18` Добавить зависимость от библиотеки Berkeley DB. По умолчанию используется package:databases/db5[]. Также может зависеть от package:databases/db18[] при использовании аргумента `:18`. Можно объявить диапазон допустимых значений: `:5+` находит самую высокую установленную версию и возвращается к 5, если ничего другого не установлено. `INVALID_BDB_VER` можно использовать для указания версий, которые не работают с этим портом. Фреймворк предоставляет порту следующие переменные: `BDB_LIB_NAME`:: Имя библиотеки Berkeley DB. Например, при использовании package:databases/db5[] она содержит `db-5.3`. `BDB_LIB_CXX_NAME`:: Название библиотеки Berkeley DBC++. Например, при использовании package:databases/db5[] она содержит `db_cxx-5.3`. `BDB_INCLUDE_DIR`:: Расположение каталога с заголовочными файлами Berkeley DB. Например, при использовании пакета package:databases/db5[], он будет содержать `${LOCALBASE}/include/db5`. `BDB_LIB_DIR`:: Расположение каталога библиотеки Berkeley DB. Например, при использовании package:databases/db5[], он содержит `${LOCALBASE}/lib`. `BDB_VER`:: Обнаруженная версия Berkeley DB. Например, при использовании `USES=bdb:5+` и установленной Berkeley DB 18, будет содержать `18`. [IMPORTANT] ==== package:databases/db48[] устарел и не поддерживается. Он не должен использоваться ни одним портом. ==== [[uses-bison]] == `bison` Возможные аргументы: (нет), `build`, `run`, `both` Использует пакет package:devel/bison[] По умолчанию, без аргументов или с аргументом `build`, подразумевается, что `bison` является зависимостью на этапе сборки, `run` — зависимостью на этапе выполнения, а `both` — зависимостью как на этапе сборки, так и на этапе выполнения. [[uses-budgie]] == `budgie` Возможные аргументы: (отсутствуют) Предоставить поддержку окружения рабочего стола Budgie. Используйте `USE_BUDGIE` для выбора необходимых компонентов порта. Дополнительную информацию см. в разделе crossref:special[using-budgie,Использование Budgie]. [[uses-cabal]] == `cabal` [IMPORTANT] ==== Порты не следует создавать для библиотек Haskell, подробнее см. в crossref:special[haskell-libs,Библиотеки Haskell]. ==== Возможные аргументы: (отсутствуют), `hpack`, `nodefault` Устанавливает значения и цели по умолчанию, используемые для сборки программного обеспечения на Haskell с помощью Cabal. Добавляется зависимость для сборки на порт компилятора Haskell (package:lang/ghc[]). Если в переменной `BUILD_DEPENDS` уже указана другая версия GHC (например, package:lang/ghc810[]), она будет использована вместо версии по умолчанию. Если указан аргумент `hpack`, добавляется зависимость для сборки на package:devel/hs-hpack[], и `hpack` вызывается на этапе конфигурации для генерации файла .cabal. Если указан аргумент `nodefault`, фреймворк не будет пытаться загрузить основной дистрибутивный файл из Hackage. Этот аргумент добавляется неявно, если присутствует `USE_GITHUB` или `USE_GITLAB`. Фреймворк предоставляет следующие переменные: `CABAL_REVISION`:: Пакеты Haskell, размещённые на Hackage, могут иметь ревизии. Установите этот параметр в целочисленное значение, чтобы использовать исправленное описание пакета. `USE_CABAL`:: Если программное обеспечение использует зависимости на Haskell, перечислите их в этой переменной. Каждый элемент должен присутствовать на Hackage и быть указан в формате `имяпакета-_0.1.2_`. Зависимости также могут иметь ревизии, которые указываются после символа `_`. Поддерживается автоматическое формирование списка зависимостей, см. crossref:special[using-cabal,Сборка приложений на Haskell с помощью `cabal`]. `CABAL_FLAGS`:: Список флагов, передаваемых `cabal-install` на этапах настройки и сборки. Флаги передаются в исходном виде. Эта переменная обычно используется для включения или отключения флагов, объявленных в файле .cabal. Передайте `foo`, чтобы включить флаг `foo`, и `-foo`, чтобы отключить его. `CABAL_EXECUTABLES`:: Список исполняемых файлов, устанавливаемых портом. Значение по умолчанию: `${PORTNAME}`. Для получения списка возможных значений этой переменной обратитесь к файлу .cabal портируемого проекта. Каждое значение соответствует разделу `executable` в файле .cabal. Элементы из этого списка автоматически добавляются в pkg-plist. `SKIP_CABAL_PLIST`:: Если определено, не добавлять элементы из `${CABAL_EXECUTABLES}` в pkg-plist. `opt_USE_CABAL`:: Добавляет элементы в `${USE_CABAL}` в зависимости от опции `opt`. `opt_CABAL_EXECUTABLES`:: Добавляет элементы в `${CABAL_EXECUTABLES}` в зависимости от опции `opt`. `opt_CABAL_FLAGS`:: Если `opt` включён, добавить значение к `${CABAL_FLAGS}`. В противном случае добавить `-value`, чтобы отключить флаг. Обратите внимание, что это поведение немного отличается от простого `CABAL_FLAGS`, так как оно не принимает значения, начинающиеся с `-`. `CABAL_WRAPPER_SCRIPTS`:: Подмножество `${CABAL_EXECUTABLES}`, содержащее программы на Haskell, которые будут обёрнуты в shell-скрипт, устанавливающий переменные окружения `*_datadir` перед запуском программы. Это также приводит к тому, что фактический бинарный файл Haskell устанавливается в каталог `libexec/cabal/`. Данная настройка необходима для программ на Haskell, которые устанавливают свои файлы данных в каталог `share/`. `FOO_DATADIR_VARS`:: Список дополнительных пакетов Haskell, чьи файлы данных должны быть доступны исполняемому файлу с именем `FOO`. Исполняемый файл должен быть частью `${CABAL_WRAPPER_SCRIPTS}`. Указанные пакеты Haskell не должны иметь суффикса версии. `CABAL_PROJECT`:: Некоторые проекты на Haskell могут уже иметь файл `cabal.project`, который также создаётся фреймворком портов. Если это так, используйте эту переменную, чтобы указать, что делать с оригинальным файлом `cabal.project`. Установка этой переменной в значение `remove` приведёт к удалению оригинального файла. Установка этой переменной в значение `append` приведёт к следующему: . Исходный файл переместится в `cabal.project.${PORTNAME}` на этапе `extract`. . Исходный файл `cabal.project.${PORTNAME}` и сгенерированный `cabal.project` объединятся в один файл после этапа `patch`. Использование `append` позволяет выполнить патчинг исходного файла перед его объединением. [[uses-cargo]] == `cargo` Возможные аргументы: (отсутствуют) Использует Cargo для настройки, сборки и тестирования. Может применяться для портирования приложений на Rust, использующих систему сборки Cargo. Дополнительную информацию смотрите в crossref:special[using-cargo,Сборка приложений на Rust с помощью `cargo`]. [[uses-charsetfix]] == `charsetfix` Возможные аргументы: (отсутствуют) Предотвращает установку файла [.filename]#charset.alias# портом. Этот файл должен устанавливаться только пакетом package:converters/libiconv[]. Переменная `CHARSETFIX_MAKEFILEIN` может быть установлена в путь относительно `WRKSRC`, если [.filename]#charset.alias# не устанавливается через [.filename]#${WRKSRC}/Makefile.in#. [[uses-cl]] == `cl` Возможные аргументы: (отсутствуют) Предоставляет поддержку портов Common Lisp. Фреймворк предоставляет следующие переменные, которые могут быть установлены портами: `ASDF_MODULES`:: Список модулей `ASDF` для сборки, когда установлен `FASL_TARGET` (по умолчанию `PORTNAME`) `FASL_TARGET`:: Собрать fasl вариант порта (один из `ccl`, `clisp` или `sbcl`) `USE_ASDF`:: Зависит от пакета package:devel/cl-asdf[] `USE_ASDF_FASL`:: Зависит от `devel/cl-asdf-` `USE_CCL`:: Зависит от пакета package:lang/ccl[]; подразумевается при `FASL_TARGET=ccl` `USE_CLISP`:: Зависит от пакета package:lang/clisp[]; подразумевается при `FASL_TARGET=clisp` `USE_SBCL`:: Зависит от пакета package:lang/sbcl[]; подразумевается, если `FASL_TARGET=SBCL` Фреймворк предоставляет следующие переменные, которые могут быть прочитаны портами: `ASDF_PATHNAME`:: Путь к исходному коду CL `ASDF_REGISTRY`:: Путь к реестру CL, содержащему файлы asd `CCL`:: Путь к компилятору Clozure Common Lisp `CLISP`:: Путь к компилятору GNU Common Lisp `CL_LIBDIR_REL`:: Каталог библиотек CL относительно `LOCALBASE` или `PREFIX` `FASL_DIR_REL`:: Относительный путь к скомпилированным fasl-файлам; зависит от `FASL_TARGET` `FASL_PATHNAME`:: Путь к CL fasl `LISP_EXTRA_ARG`:: Дополнительные аргументы, используемые при сборке fasl `SBCL`:: Путь к компилятору Steel Bank Common Lisp [[uses-cmake]] == `cmake` Возможные аргументы: (отсутствуют), `insource`, `noninja`, `run`, `testing` Используйте CMake для настройки порта и генерации системы сборки. По умолчанию выполняется сборка в дереве вне исходного кода, оставляя исходные файлы в `WRKSRC` свободными от артефактов сборки. С аргументом `insource` вместо этого будет выполнена сборка в исходном коде. Этот аргумент должен быть исключением и использоваться только в случае, когда обычная сборка вне исходного кода не работает. По умолчанию для сборки используется Ninja (package:devel/ninja[]). В некоторых случаях это может работать некорректно. С аргументом `noninja` сборка будет использовать обычный `make`. Этот аргумент следует применять только если сборка на основе Ninja не работает. С аргументом `run` регистрируется зависимость во время выполнения в дополнение к зависимости при сборке. С аргументом `testing`, добавляется цель тестирования, использующая CTest. При запуске тестов порт будет переконфигурирован для тестирования и пересобран. Для получения дополнительной информации см. crossref:special[using-cmake,Использование `cmake`]. [[uses-compiler]] == `compiler` Возможные аргументы: (нет), `env` (по умолчанию, подразумевается), `{cpp}17-lang`, `{cpp}14-lang`, `{cpp}11-lang`, `gcc-{cpp}11-lib`, `{cpp}11-lib`, `{cpp}0x`, `c11`, `nestedfct`, `features` Определяет, какой компилятор использовать, исходя из заданных предпочтений. Используйте `{cpp}17-lang`, если порту требуется компилятор с поддержкой {cpp}17, `{cpp}14-lang`, если порту требуется компилятор с поддержкой {cpp}14, `{cpp}11-lang`, если порту требуется компилятор с поддержкой {cpp}11, `gcc-{cpp}11-lib`, если порту требуется компилятор `g++` с библиотекой {cpp}11, или `{cpp}11-lib`, если порту требуется стандартная библиотека с поддержкой {cpp}11. Если порту требуется компилятор, понимающий {cpp}0X, C11 или вложенные функции, следует использовать соответствующие параметры. Используйте `features` для запроса списка возможностей, поддерживаемых компилятором по умолчанию. После включения [.filename]#bsd.port.pre.mk# порт может проверить результаты с помощью следующих переменных: * `COMPILER_TYPE`: компилятор по умолчанию в системе, gcc или clang * `ALT_COMPILER_TYPE`: альтернативный компилятор в системе, gcc или clang. Устанавливается только при наличии двух компиляторов в базовой системе. * `COMPILER_VERSION`: первые две цифры версии компилятора по умолчанию. * `ALT_COMPILER_VERSION`: первые две цифры версии альтернативного компилятора, если он присутствует. * `CHOSEN_COMPILER_TYPE`: выбранный компилятор, gcc или clang * `COMPILER_FEATURES`: возможности, поддерживаемые компилятором по умолчанию. В настоящее время указана библиотека {cpp}. [[uses-cpe]] == `cpe` Возможные аргументы: (отсутствуют) Включает информацию о Common Platform Enumeration (CPE) в манифест пакета в виде строки формата CPE 2.3. Подробности см. в https://scap.nist.gov/specifications/cpe/[спецификации CPE]. Чтобы добавить информацию CPE в порт, выполните следующие шаги: [.procedure] . Поищите официальную запись CPE для программного продукта, используя либо https://web.nvd.nist.gov/view/cpe/search[поисковую систему CPE] от NVD, либо https://nvd.nist.gov/feeds/xml/cpe/dictionary/official-cpe-dictionary_v2.3.xml.gz[официальный словарь CPE] (предупреждение: очень большой XML-файл). _Никогда не создавайте данные CPE самостоятельно._ . Добавьте `cpe` в `USES` и сравните результат выполнения `make -V CPE_STR` с записью в словаре CPE. Продолжайте шаг за шагом, пока результат `make -V CPE_STR` не станет корректным. . Если название продукта (второе поле, по умолчанию `PORTNAME`) указано неверно, определите `CPE_PRODUCT`. . Если название производителя (первое поле, по умолчанию `CPE_PRODUCT`) указано неверно, определите `CPE_VENDOR`. . Если поле версии (третье поле, по умолчанию `PORTVERSION`) указано неверно, определите `CPE_VERSION`. . Если поле обновления (четвертое поле, по умолчанию пустое) указано неверно, определите `CPE_UPDATE`. . Если это всё ещё неверно, проверьте файл [.filename]#Mk/Uses/cpe.mk# для получения дополнительной информации или свяжитесь с {ports-secteam}. . Извлекайте как можно больше информации для имени CPE из существующих переменных, таких как `PORTNAME` и `PORTVERSION`. Используйте модификаторы переменных для извлечения соответствующих частей из этих переменных, вместо того чтобы жёстко прописывать имя. . _Всегда_ выполняйте `make -V CPE_STR` и проверяйте вывод перед коммитом любых изменений, затрагивающих `PORTNAME`, `PORTVERSION` или любые другие переменные, используемые для формирования `CPE_STR`. [[uses-cran]] == `cran` Возможные аргументы: (нет), `auto-plist`, `compiles` Использует Comprehensive R Archive Network. Укажите `auto-plist` для автоматического создания [.filename]#pkg-plist#. Укажите `compiles`, если порт содержит код, который необходимо компилировать. [[uses-desktop-file-utils]] == `desktop-file-utils` Возможные аргументы: (отсутствуют) Использует update-desktop-database из пакета package:devel/desktop-file-utils[]. Дополнительный шаг post-install будет выполнен без вмешательства в уже существующие шаги post-install в [.filename]#Makefile# порта. Строка с crossref:plist[plist-keywords-desktop-file-utils,`@desktop-file-utils`] будет добавлена в plist. Используйте этот макрос только если порт предоставляет файл `.desktop`, содержащий запись `MimeType`. [[uses-desthack]] == `desthack` Возможные аргументы: (отсутствуют) Изменяет поведение GNU configure для корректной поддержки `DESTDIR` в случае, если исходное программное обеспечение этого не делает. [[uses-display]] == `display` Возможные аргументы: (отсутствуют), _ARGS_ Настраивает виртуальное окружение для отображения. Если переменная окружения `DISPLAY` не установлена, то Xvfb добавляется как зависимость при сборке, а `CONFIGURE_ENV` расширяется с указанием номера порта текущего запущенного экземпляра Xvfb. Параметр _ARGS_ по умолчанию имеет значение `install` и управляет фазой, вокруг которой запускается и останавливается виртуальный дисплей. [[uses-dos2unix]] == `dos2unix` Возможные аргументы: (отсутствуют) Порт содержит файлы с символами конца строки в формате DOS, которые необходимо преобразовать. Несколько переменных могут быть установлены для контроля, какие файлы будут преобразованы. По умолчанию преобразуются _все_ файлы, включая бинарные. См. crossref:slow-porting[slow-patch-automatic-replacements,Простые автоматические замены] для примеров. * `DOS2UNIX_REGEX`: сопоставлять имена файлов на основе регулярного выражения. * `DOS2UNIX_FILES`: соответствуют точным именам файлов. * `DOS2UNIX_GLOB`: сопоставлять имена файлов на основе шаблона файлов оболочки. * `DOS2UNIX_WRKSRC`: каталог, с которого начинать преобразования. По умолчанию `${WRKSRC}`. [[uses-drupal]] == `drupal` Возможные аргументы: `7`, `module`, `theme` Автоматизирует установку порта, который является темой или модулем Drupal. Использовать с версией Drupal, которую ожидает порт. Например, `USES=drupal:7,module` означает, что этот порт создает модуль Drupal 7. Тему Drupal 7 можно указать с помощью `USES=drupal:7,theme`. [[uses-ebur128]] == `ebur128` Возможные аргументы: (нет), `build`, `lib`, `run`, `test` Добавляет зависимость от пакета package:audio/ebur128[]. Позволяет прозрачно зависеть от вариантов `rust` или `legacy`, используя `DEFAULT_VERSIONS` в [.filename]#make.conf#. Например, для использования устаревшей версии укажите `DEFAULT_VERSIONS+=ebur128=legacy` Без аргументов поведение аналогично случаю с предоставлением аргумента `lib`. Остальные аргументы указывают соответствующую категорию зависимости. [[uses-eigen]] == `eigen` Возможные аргументы: 2, 3, build (по умолчанию), run Добавить зависимость от пакета package:math/eigen[]. [[uses-elextronfix]] == `electronfix` Возможные аргументы: `37`, `38`, `39` Предоставить поддержку для простого портирования Electron-приложений, распространяемых в бинарной форме. Добавляет зависимость на этапах сборки и выполнения от package:devel/electron37[], package:devel/electron38[] или package:devel/electron39[] в зависимости от используемого аргумента. Фреймворк предоставляет следующие переменные, которые могут быть установлены портами: `ELECTRONFIX_SYMLINK_FILES`:: Список файлов для создания символьных ссылок из дистрибутива Electron. `ELECTRONFIX_MAIN_EXECUTABLE`:: Имя файла основного исполняемого файла, который будет заменен оригинальным бинарным файлом Electron. [[uses-elfctl]] == `elfctl` Возможные аргументы: (отсутствуют), `build` (по умолчанию), `stage` Установите управляющие заметки функций ELF-бинарных файлов, задав `ELF_FEATURES`. Когда не указан аргумент или указан аргумент `build`, операции выполняются над бинарными файлами в `BUILD_WRKSRC`, а файлы, перечисленные в `ELF_FEATURES`, указываются относительно `BUILD_WRKSRC`. Когда указан аргумент `stage`, операции выполняются над бинарными файлами в `STAGEDIR`, а файлы, перечисленные в `ELF_FEATURES`, указываются относительно `STAGEDIR`. [[uses-elfct-ex1]] .Uses=elfctl [example] ==== [.programlisting] .... ELF_FEATURES= featurelist:path/to/file1 \ featurelist:path/to/file2 .... ==== Формат `featurelist` описан в man:elfctl[1]. [[uses-elixir]] == `elixir` Возможные аргументы: (отсутствуют) Предоставить поддержку для портов, использующих package:lang/elixir[]. Добавляет зависимость во время сборки и выполнения на package:lang/elixir[]. Предоставляемые фреймворком переменные: `ELIXIR_APP_NAME`:: Название приложения Elixir, как оно установлено в каталоге lib Elixir `ELIXIR_LIB_ROOT`:: Путь к библиотекам Elixir по умолчанию `ELIXIR_APP_ROOT`:: Корневой каталог для этого приложения Elixir `ELIXIR_HIDDEN`:: Приложения, которые необходимо скрыть из пути выполнения кода; обычно `${PORTNAME}` `ELIXIR_LOCALE`:: Локаль UTF-8, которая будет использоваться Elixir во время сборки (подойдет любая локаль UTF-8) `MIX_CMD`:: Команда `mix` `MIX_COMPILE`:: Команда `mix`, используемая для компиляции приложения на Elixir `MIX_REWRITE`:: Автоматически заменять зависимости Mix на пути к коду `MIX_BUILD_DEPS`:: Список `BUILD_DEPENDS` в формате категория/имя_порта (часто упоминаемый как "deps" в Erlang и Elixir) `MIX_RUN_DEPS`:: Список `RUN_DEPENDS` в формате категория/имя порта `MIX_DOC_DIRS`:: Дополнительные каталоги документации для установки в `DOCSDIR` `MIX_DOC_FILES`:: Дополнительные файлы документации для установки в `DOCSDIR` (обычно README.md) `MIX_ENV`:: Окружение для сборки Mix (в том же формате, что и `MAKE_ENV`) `MIX_ENV_NAME`:: Имя среды сборки Mix, обычно "prod" `MIX_BUILD_NAME`:: Имя выходного файла сборки в _build/, обычно `${MIX_ENV_NAME}` `MIX_TARGET`:: Имя цели Mix, обычно "compile" `MIX_EXTRA_APPS`:: Список подприложений для сборки, если имеются `MIX_EXTRA_DIRS`:: Список дополнительных каталогов для установки в `ELIXIR_APP_ROOT` `MIX_EXTRA_FILES`:: Список дополнительных файлов для установки в `ELIXIR_APP_ROOT` [[uses-emacs]] == `emacs` Возможные аргументы: (нет) (по умолчанию), `build`, `run`, `noflavors` Предоставляет поддержку для портов, требующих Emacs. Аргумент `build` создает зависимость сборки от Emacs. Аргумент `run` создает зависимость выполнения от Emacs. Если оба аргумента `build` и `run` отсутствуют, создаются зависимости сборки и выполнения от Emacs. Аргумент `noflavors` запрещает флейворы и подразумевается, если нет зависимости выполнения от Emacs. Стандартный вариант Emacs для портов с `USES=emacs` можно определить в [.filename]#make.conf#. Например, для варианта `nox` используйте `DEFAULT_VERSIONS+= emacs=nox`. Допустимые флейворы: `full`, `canna`, `nox`, `wayland`, `devel_full`, `devel_nox`. Переменные, которые могут быть установлены портами: `EMACS_FLAVORS_EXCLUDE`:: НЕ собирать эти флейворы Emacs. Если `EMACS_FLAVORS_EXCLUDE` не определена и: * существует зависимость во время выполнения от Emacs * аргумент noflavors не указан + то предполагаются все допустимые флейворы Emacs. `EMACS_NO_DEPENDS`:: НЕ добавлять зависимости сборки или выполнения от Emacs. Это предотвратит создание вариантов, и никакие файлы байт-кода не будут сгенерированы как часть пакета. Переменные, которые могут быть прочитаны портами: `EMACS_CMD`:: Команда Emacs с полным путём (например, [.filename]#/usr/local/bin/emacs-30.1#) `EMACS_FLAVOR`:: Используется для зависимостей (например, `BUILD_DEPENDS= dash.el${EMACS_PKGNAMESUFFIX}>0:devel/dash@${EMACS_FLAVOR}`) `EMACS_LIBDIR`:: Каталог библиотек Emacs без `${PREFIX}` (например, [.filename]#share/emacs#) `EMACS_LIBDIR_WITH_VER`:: Каталог библиотеки без `${PREFIX}`, включая версию (например, [.filename]#share/emacs/30.1#) `EMACS_MAJOR_VER`:: Основная версия Emacs (например, 30) `EMACS_PKGNAMESUFFIX`:: `PKGNAMESUFFIX` для различия вариантов Emacs `EMACS_SITE_LISPDIR`:: Каталог site-lisp Emacs без `${PREFIX}` (например, [.filename]#share/emacs/site-lisp#) `EMACS_VER`:: Версия Emacs (например, 30.1) `EMACS_VERSION_SITE_LISPDIR`:: Каталог site-lisp Emacs, включая номер версии (например, [.filename]#share/emacs/30.1/site-lisp#) [[uses-erlang]] == `erlang` Возможные аргументы: (нет), `enc`, `rebar`, `rebar3` Добавляет зависимость на время сборки и выполнения от package:lang/erlang[]. В зависимости от аргумента, добавляет дополнительные зависимости для сборки. `enc` добавляет зависимость от package:devel/erlang-native-compiler[], `rebar` добавляет зависимость от package:devel/rebar[], а `rebar3` добавляет зависимость от package:devel/rebar3[]. В дополнение, следующие переменные доступны для порта: * `ERL_APP_NAME`: Имя приложения Erlang, как оно установлено в каталоге lib Erlang (без указания версии) * `ERL_APP_ROOT`: Корневой каталог для этого приложения Erlang * `REBAR_CMD`: Путь к команде "rebar" * `REBAR3_CMD`: Путь к команде "rebar3" * `REBAR_PROFILE`: Профиль Rebar * `REBAR_TARGETS`: Список целей Rebar (обычно compile, возможно escriptize) * `ERL_BUILD_NAME`: Имя сборки для rebar3 * `ERL_BUILD_DEPS`: Список BUILD_DEPENDS в формате категория/имя_порта * `ERL_RUN_DEPS`: Список RUN_DEPENDS в формате категория/имя_порта * `ERL_DOCS`: Список файлов и каталогов документации [[uses-fakeroot]] == `fakeroot` Возможные аргументы: (отсутствуют) Изменяет некоторые стандартные поведения систем сборки для разрешения установки от имени пользователя. Дополнительную информацию о `fakeroot` можно найти на https://wiki.debian.org/FakeRoot[]. [[uses-firebird]] == `firebird` Возможные аргументы: (отсутствуют), `25` Добавить зависимость от клиентской библиотеке базы данных Firebird. [[uses-fonts]] == `fonts` Возможные аргументы: (отсутствуют), `fc`, `fontsdir` (по умолчанию), `none` Добавляет зависимость во время выполнения на инструменты, необходимые для регистрации шрифтов. В зависимости от аргумента добавляет строку `crossref:plist[plist-keywords-fc,@fc] ${FONTSDIR}`, строку `crossref:plist[plist-keywords-fontsdir,@fontsdir] ${FONTSDIR}` или не добавляет строку, если аргумент `none`, в plist. `FONTSDIR` по умолчанию имеет значение [.filename]#${PREFIX}/share/fonts/${FONTNAME}#, а `FONTNAME` — `${PORTNAME}`. Добавляет `FONTSDIR` в `PLIST_SUB` и `SUB_LIST` [[uses-fortran]] == `fortran` Возможные аргументы: `gcc` (по умолчанию) Использует компилятор GNU Fortran. [[uses-fpc]] == `fpc` Возможные аргументы: (нет), `run` Обеспечить поддержку портов на основе Free Pascal. Установит компилятор Free Pascal и модули. Добавляет зависимость сборки от package:lang/fpc[]. Если указан аргумент `run`, также добавляется зависимость запуска. [[uses-fuse]] == `fuse` Возможные аргументы: `2` (по умолчанию), `3` Порт будет зависеть от библиотеки FUSE и обрабатывать зависимость от модуля ядра в зависимости от версии FreeBSD. [[uses-gem]] == `gem` Возможные аргументы: (отсутствуют), `noautoplist` Обработка сборки с RubyGems. Если используется `noautoplist`, список упаковки не генерируется автоматически. Это подразумевает `USES=ruby`. [[uses-gettext]] == `gettext` Возможные аргументы: (отсутствуют) Устарело. Будет включать как crossref:uses[uses-gettext-runtime,`gettext-runtime`], так и crossref:uses[uses-gettext-tools,`gettext-tools`]. [[uses-gettext-runtime]] == `gettext-runtime` Возможные аргументы: (отсутствуют), `lib` (по умолчанию), `build`, `run` Использует пакет package:devel/gettext-runtime[]. По умолчанию, без аргументов или с аргументом `lib`, подразумевает зависимость от библиотеки [.filename]#libintl.so#. Аргументы `build` и `run` подразумевают, соответственно, зависимость во время сборки и во время выполнения от [.filename]#gettext#. [[uses-gettext-tools]] == `gettext-tools` Возможные аргументы: (отсутствуют), `build` (по умолчанию), `run` Использует пакет package:devel/gettext-tools[]. По умолчанию, без аргумента или с аргументом `build`, регистрируется зависимость во время сборки от [.filename]#msgfmt#. С аргументом `run` регистрируется зависимость во время выполнения. [[uses-ghostscript]] == `ghostscript` Возможные аргументы: _X_, `build`, `run`, `nox11` Можно указать конкретную версию _X_. Доступные версии: `7`, `8`, `9` и `agpl` (по умолчанию). `nox11` указывает, что требуется версия порта `-nox11`. `build` и `run` добавляют зависимости на Ghostscript во время сборки и выполнения соответственно. По умолчанию добавляются зависимости как на сборку, так и на выполнение. [[uses-gl]] == `gl` Возможные аргументы: (отсутствуют) Предоставляет простой способ зависеть от компонентов GL. Компоненты должны быть перечислены в `USE_GL`. Доступные компоненты: `egl`:: добавить зависимость от библиотеки [.filename]#libEGL.so# из пакета package:graphics/libglvnd[] `gbm`:: Добавить зависимость от библиотеки [.filename]#libgbm.so# из пакета package:graphics/mesa-libs[] `gl`:: Добавить зависимость от библиотеки [.filename]#libGL.so# из пакета package:graphics/libglvnd[] `glesv2`:: Добавить зависимость от библиотеки [.filename]#libGLESv2.so# из пакета package:graphics/libglvnd[] `glew`:: Добавить зависимость от библиотеки [.filename]#libGLEW.so# из пакета package:graphics/glew[] `glu`:: Добавить зависимость от библиотеки [.filename]#libGLU.so# из package:graphics/libGLU[] `glut`:: Добавить зависимость от библиотеки [.filename]#libglut.so# из package:graphics/freeglut[] `opengl`:: Добавить зависимость от библиотеки [.filename]#libOpenGL.so# из package:graphics/libglvnd[] [[uses-gmake]] == `gmake` Возможные аргументы: (отсутствуют) Использует пакет package:devel/gmake[] как зависимость во время сборки и настраивает окружение для использования `gmake` в качестве стандартного `make` при сборке. [[uses-gnome]] == `gnome` Возможные аргументы: (отсутствуют) Предоставляет простой способ зависеть от компонентов GNOME. Компоненты должны быть перечислены в `USE_GNOME`. Доступные компоненты: * `atk` * `atkmm` * `cairo` * `cairomm` * `dconf` * `esound` * `evolutiondataserver3` * `gconf2` * `gconfmm26` * `gdkpixbuf` * `gdkpixbuf2` * `glib12` * `glib20` * `glibmm` * `gnomecontrolcenter3` * `gnomedesktop3` * `gnomedesktop4` * `gnomedocutils` * `gnomemenus3` * `gnomemimedata` * `gnomeprefix` * `gnomesharp20` * `gnomevfs2` * `gsound` * `gtk-update-icon-cache` * `gtk12` * `gtk20` * `gtk30` * `gtkhtml3` * `gtkhtml4` * `gtkmm20` * `gtkmm24` * `gtkmm30` * `gtksharp20` * `gtksourceview` * `gtksourceview2` * `gtksourceview3` * `gtksourceviewmm3` * `gvfs` * `intlhack` * `intltool` * `introspection` * `libartlgpl2` * `libbonobo` * `libbonoboui` * `libgda5` * `libgda5-ui` * `libgdamm5` * `libglade2` * `libgnome` * `libgnomecanvas` * `libgnomekbd` * `libgnomeprint` * `libgnomeprintui` * `libgnomeui` * `libgsf` * `libgtkhtml` * `libgtksourceviewmm` * `libidl` * `librsvg2` * `libsigc++12` * `libsigc++20` * `libwnck` * `libwnck3` * `libxml++26` * `libxml2` * `libxslt` * `metacity` * `nautilus3` * `orbit2` * `pango` * `pangomm` * `pangox-compat` * `py3gobject3` * `pygnome2` * `pygobject` * `pygobject3` * `pygtk2` * `pygtksourceview` * `referencehack` * `vte` * `vte3` Зависимость по умолчанию — на время сборки и выполнения, её можно изменить с помощью `:build` или `:run`. Например: [.programlisting] .... USES= gnome USE_GNOME= gnomemenus3:build intlhack .... См. crossref:special[using-gnome,Использование GNOME] для получения дополнительной информации. [[uses-go]] == `go` [IMPORTANT] ==== Порты не следует создавать для библиотек Go, дополнительную информацию см. в crossref:special[go-libs,Библиотеки Go]. ==== Возможные аргументы: (нет), `N.NN`, `N.NN+`, `N.NN-devel`, `modules`, `no_targets`, `run` Устанавливает значения и цели по умолчанию, используемые для сборки ПО на Go. Добавляется зависимость сборки от порта компилятора Go, сопровождающие порта могут установить требуемую версию. Если используется формат `X.Y+`, то будет применяться Go версии `X.Y`, за исключением случаев, когда стандартная версия Go выше, чем `X.Y` — в таком случае будет использоваться стандартная версия. По умолчанию сборка выполняется в режиме GOPATH. Если ПО на Go использует модули, режим с поддержкой модулей можно включить с помощью аргумента `modules`. `no_targets` настроит окружение сборки, как `GO_ENV`, `GO_BUILDFLAGS`, но пропустит создание целей извлечения (extract) и сборки (build). `run` также добавит зависимость выполнения от порта компилятора Go. Процесс сборки контролируется несколькими переменными: `GO_MODULE`:: Имя модуля приложения, указанное директивой `module` в `go.mod`. В большинстве случаев это единственная необходимая переменная для портов, использующих модули Go. `GO_PKGNAME`:: Имя пакета Go при сборке в режиме GOPATH. Это каталог, который будет создан в `${GOPATH}/src`. Если не задано явно и присутствует `GH_SUBDIR` или `GL_SUBDIR`, то `GO_PKGNAME` будет выведено из них. Не требуется при сборке в режиме с поддержкой модулей. `GO_TARGET`:: Пакеты для сборки. Значение по умолчанию — `${GO_PKGNAME}`. `GO_TARGET` также может быть кортежем в формате `package:path`, где path может быть либо простым именем файла, либо полным путём, начинающимся с `${PREFIX}`. `GO_TESTTARGET`:: Пакеты для тестирования. Значение по умолчанию — `./...` (текущий пакет и все подпакеты). `CGO_CFLAGS`:: Дополнительные значения `CFLAGS`, передаваемые компилятору C с помощью `go`. `CGO_LDFLAGS`:: Дополнительные значения `LDFLAGS`, передаваемые компилятору C через `go`. `GO_BUILDFLAGS`:: Дополнительные аргументы сборки, передаваемые в `go build`. `GO_TESTFLAGS`:: Дополнительные аргументы сборки, передаваемые в `go test`. См. crossref:special[using-go,Сборка приложений на Go] для примеров использования. [[uses-gperf]] == `gperf` Возможные аргументы: (отсутствуют) Добавить зависимость во время сборки на package:devel/gperf[], если `gperf` отсутствует в базовой системе. [[uses-grantlee]] == `grantlee` Возможные аргументы: `5`, `selfbuild` Обработать зависимость от Grantlee. Указать `5` для зависимости от версии на основе Qt5, package:devel/grantlee5[]. `selfbuild` используется внутри package:devel/grantlee5[] для получения номеров их версий. [[uses-groff]] == `groff` Возможные аргументы: `build`, `run`, `both` Регистрирует зависимость от package:textproc/groff[], если пакет отсутствует в базовой системе. [[uses-gssapi]] == `gssapi` Возможные аргументы: (отсутствуют), `base` (по умолчанию), `heimdal`, `mit`, `mit-devel`, `flags`, `bootstrap` Обрабатывает зависимости, необходимые для использования GSS-API. Доступны только библиотеки, предоставляющие механизм Kerberos. По умолчанию (или при значении `base`) используется библиотека GSS-API из базовой системы. Также можно установить значение `heimdal` для использования package:security/heimdal[], `mit-devel` для использования package:security/krb5[] или `mit` для использования package:security/krb5-devel[]. Если локальная установка Kerberos не находится в `LOCALBASE`, установите `HEIMDAL_HOME` (для `heimdal`) или `KRB5_HOME` (для `krb5`) на каталог установки Kerberos. Эти переменные экспортируются для использования портами: * `GSSAPIBASEDIR` * `GSSAPICPPFLAGS` * `GSSAPIINCDIR` * `GSSAPILDFLAGS` * `GSSAPILIBDIR` * `GSSAPILIBS` * `GSSAPI_CONFIGURE_ARGS` Опция `flags` может быть указана вместе с `base`, `heimdal`, `mit` или `mit-devel` для автоматического добавления `GSSAPICPPFLAGS`, `GSSAPILDFLAGS` и `GSSAPILIBS` в `CFLAGS`, `LDFLAGS` и `LDADD` соответственно. Например, используйте `base,flags`. Опция `bootstrap` — это специальный префикс, предназначенный только для использования в package:security/krb5[] и package:security/heimdal[]. Например, используйте `bootstrap,mit`. [[uses-gssapi-ex1]] .Типичное использование [example] ==== [.programlisting] .... OPTIONS_SINGLE= GSSAPI OPTIONS_SINGLE_GSSAPI= GSSAPI_BASE GSSAPI_HEIMDAL GSSAPI_MIT GSSAPI_NONE GSSAPI_BASE_USES= gssapi GSSAPI_BASE_CONFIGURE_ON= --with-gssapi=${GSSAPIBASEDIR} ${GSSAPI_CONFIGURE_ARGS} GSSAPI_HEIMDAL_USES= gssapi:heimdal GSSAPI_HEIMDAL_CONFIGURE_ON= --with-gssapi=${GSSAPIBASEDIR} ${GSSAPI_CONFIGURE_ARGS} GSSAPI_MIT_USES= gssapi:mit GSSAPI_MIT_CONFIGURE_ON= --with-gssapi=${GSSAPIBASEDIR} ${GSSAPI_CONFIGURE_ARGS} GSSAPI_NONE_CONFIGURE_ON= --without-gssapi .... ==== [[uses-gstreamer]] == `gstreamer` Возможные аргументы: (отсутствуют) Предоставляет простой способ зависимости от компонентов GStreamer. Компоненты должны быть перечислены в `USE_GSTREAMER`. Доступные компоненты: * `a52dec` * `aalib` * `amrnb` * `amrwbdec` * `aom` * `assrender` * `bad` * `bs2b` * `cairo` * `cdio` * `cdparanoia` * `chromaprint` * `curl` * `dash` * `dtls` * `dts` * `dv` * `dvd` * `dvdread` * `editing-services` * `faac` * `faad` * `flac` * `flite` * `gdkpixbuf` * `gl` * `gme` * `gnonlin` * `good` * `gsm` * `gtk4` * `gtk` * `hal` * `hls` * `jack` * `jpeg` * `kate` * `kms` * `ladspa` * `lame` * `libav` * `libcaca` * `libde265` * `libmms` * `libvisual` * `lv2` * `mm` * `modplug` * `mpeg2dec` * `mpeg2enc` * `mpg123` * `mplex` * `musepack` * `neon` * `ogg` * `opencv` * `openexr` * `openh264` * `openjpeg` * `openmpt` * `opus` * `pango` * `png` * `pulse` * `qt` * `resindvd` * `rsvg` * `rtmp` * `shout2` * `sidplay` * `smoothstreaming` * `sndfile` * `sndio` * `soundtouch` * `soup` * `spandsp` * `speex` * `srtp` * `taglib` * `theora` * `ttml` * `twolame` * `ugly` * `v4l2` * `vorbis` * `vpx` * `vulkan` * `wavpack` * `webp` * `webrtcdsp` * `x264` * `x265` * `x` * `ximagesrc` * `zbar` [[uses-guile]] == `guile` Возможные аргументы: (нет), `_X.Y_`, `flavors`, `build`, `run`, `alias`, `conflicts` Добавляет зависимость от Guile. По умолчанию это зависимость от соответствующей библиотеки `libguile*.so`, если не переопределено опциями `build` и/или `run`. Опция `alias` настраивает `BINARY_ALIAS` соответствующим образом (см. crossref:makefiles[binary-alias,Использование `BINARY_ALIAS`]). Версия по умолчанию устанавливается с помощью обычного механизма `DEFAULT_VERSIONS`; если версия по умолчанию не входит в список указанных версий, то используется последняя доступная версия из списка. Приложения, использующие Guile, обычно собираются только для одной версии Guile. Однако модули расширений или библиотек должны использовать опцию `flavors` для сборки с несколькими флейворами. Для получения дополнительной информации см. crossref:special[using-guile,Использование Guile]. [[uses-horde]] == `horde` Возможные аргументы: (отсутствуют) Добавить зависимости времени сборки и выполнения для package:devel/pear-channel-horde[]. Другие зависимости Horde можно добавить с помощью `USE_HORDE_BUILD` и `USE_HORDE_RUN`. Дополнительную информацию см. в разделе crossref:special[php-horde,Модули Horde]. [[uses-iconv]] == `iconv` Возможные аргументы: (нет), `lib`, `build`, `patch`, `translit`, `wchar_t` Использует функции `iconv`, либо из порта package:converters/libiconv[] как зависимость на этапе сборки и выполнения, либо из базовой системы. По умолчанию, без аргументов или с аргументом `lib`, подразумевает `iconv` с зависимостями на этапе сборки и выполнения. `build` подразумевает зависимость на этапе сборки, а `patch` — на этапе патчинга. Если порт использует расширения `WCHAR_T` или `//TRANSLIT` для `iconv`, добавьте соответствующие аргументы, чтобы использовалась правильная версия `iconv`. Для получения дополнительной информации см. crossref:special[using-iconv,Использование `iconv`]. [[uses-imake]] == `imake` Возможные аргументы: (нет), `env`, `notall`, `noman` Добавить package:devel/imake[] как зависимость на этапе сборки и выполнить `xmkmf -a` на этапе `configure`. Если указан аргумент `env`, цель `configure` не устанавливается. Если флаг `-a` вызывает проблемы для порта, добавьте аргумент `notall`. Если `xmkmf` не генерирует цель `install.man`, добавьте аргумент `noman`. [[uses-java]] == `java` Возможные аргументы: (нет), `ant`, `build`, `extract`, `run` По умолчанию используется `USES=java:build,run`, если аргументы не предоставлены и `NO_BUILD` не определен. Если `NO_BUILD` определен, используется `USES=java:run`. Если указан аргумент `ant`, порт использует Apache Ant. Если указан аргумент `build`, порт JDK добавляется в зависимости сборки. Если указан аргумент `extract`, порт JDK добавляется в зависимости извлечения. Если указан аргумент `run`, порт JDK добавляется в зависимости выполнения. Фреймворк предоставляет следующие переменные, которые могут быть установлены портом: `JAVA_VERSION`:: Список подходящих версий Java для порта, разделенных пробелами. Необязательный символ `\+` позволяет указать диапазон версий. (допустимые значения `8[+]`, `11[\+]`, `17[+]`, `18[\+]`, `19[+]`, `20[\+]`, `21[+]`, `22[\+]`, `22[+]`) `JAVA_OS`:: Список поддерживаемых операционных систем для порта JDK, разделённых пробелами. (допустимые значения: `native`, `linux`) `JAVA_VENDOR`:: Список подходящих поставщиков портов JDK для порта, разделенных пробелами. (допустимые значения: `openjdk`, `oracle`) Фреймворк предоставляет следующие переменные для чтения портом: `JAVA_PORT`:: Имя порта JDK. (например, 'java/openjdk8') `JAVA_PORT_VERSION`:: Версия порта JDK. (например, '8') `JAVA_PORT_OS`:: Используемая операционная система для порта JDK. (например, 'linux') `JAVA_PORT_VENDOR`:: Поставщик порта JDK. (например, 'openjdk') `JAVA_PORT_OS_DESCRIPTION`:: Описание операционной системы, используемой портом JDK. (например, 'Linux') `JAVA_PORT_VENDOR_DESCRIPTION`:: Описание поставщика порта JDK. (например, 'OpenJDK BSD Porting Team') `JAVA_HOME`:: Путь к каталогу установки JDK. (например, [.filename]#/usr/local/openjdk8#) `JAVAC`:: Путь к используемому компилятору Java. (например, [.filename]#/usr/local/openjdk8/bin/javac# или [.filename]#/usr/local/bin/javac#) `JAR`:: Путь к используемому инструменту JAR. (например, [.filename]#/usr/local/openjdk8/bin/jar# или [.filename]#/usr/local/bin/fastjar#) `APPLETVIEWER`:: Путь к утилите appletviewer. (например, [.filename]#/usr/local/linux-jdk1.8.0/bin/appletviewer#) `JAVA`:: Путь к исполняемому файлу `java`. Используется для запуска программ на Java. (например, [.filename]#/usr/local/openjdk8/bin/java#) `JAVADOC`:: Путь к программе `javadoc`. `JAVAH`:: Путь к программе `javah`. `JAVAP`:: Путь к программе `javap`. `JAVA_KEYTOOL`:: Путь к утилите `keytool`. `JAVA_N2A`:: Путь к инструменту `native2ascii`. `JAVA_POLICYTOOL`:: Путь к программе `policytool`. `JAVA_SERIALVER`:: Путь к утилите `serialver`. `RMIC`:: Путь к генератору RMI-заглушек/скелетов, `rmic`. `RMIREGISTRY`:: Путь к программе реестра RMI, `rmiregistry`. `RMID`:: Путь к программе демона RMI. `JAVA_CLASSES`:: Путь к архиву, содержащему файлы классов JDK. В большинстве JDK это [.filename]#${JAVA_HOME}/jre/lib/rt.jar#. `JAVASHAREDIR`:: Базовый каталог для всех общих ресурсов Java. `JAVAJARDIR`:: Каталог, в котором порт должен устанавливать JAR-файлы. `JAVALIBDIR`:: Каталог, в котором находятся JAR-файлы, установленные другими портами. [[uses-jpeg]] == `jpeg` Возможные аргументы: `lib` (по умолчанию, подразумевается), `build`, `run` Помощь в обработке зависимостей от `jpeg`. Если указан аргумент `lib` или аргументы не предоставлены, то в порт добавляется зависимость от библиотеки. Если указан аргумент `build`, то в порт добавляется зависимость сборки. Если указан аргумент `run`, то к порту добавляется зависимость времени выполнения. Если указан аргумент `both`, то к порту добавляется зависимость для сборки и зависимость для выполнения. Фреймворк предоставляет следующую переменную, которая может быть установлена портами: `JPEG_PORT`:: Указывает реализацию JPEG для использования. Возможные значения: * package:graphics/jpeg-turbo[] (по умолчанию) * package:graphics/mozjpeg[] [[uses-kde]] == `kde` Возможные аргументы: `5` Добавить зависимость от компонентов KDE. Подробнее см. в crossref:special[using-kde,Использование KDE]. [[uses-kmod]] == `kmod` Возможные аргументы: (отсутствуют), `debug` Заполняет шаблон для портов модулей ядра, в настоящее время: * Добавьте `kld` в `CATEGORIES`. * Установите `SSP_UNSAFE`. * Установите `IGNORE`, если исходные коды ядра не найдены в `SRC_BASE`. * Определить `KMODDIR` по умолчанию как [.filename]#/boot/modules#, добавить его в `PLIST_SUB` и `MAKE_ENV`, а также создать его при установке. Если `KMODDIR` установлен в [.filename]#/boot/kernel#, он будет перезаписан в [.filename]#/boot/modules#. Это предотвращает повреждение пакетов при обновлении ядра из-за переименования [.filename]#/boot/kernel# в [.filename]#/boot/kernel.old# в процессе. * Обрабатывать перекрестные ссылки на модули ядра при установке и удалении, используя crossref:plist[plist-keywords-kld,`@kld`]. * Если указан аргумент `debug`, порт может установить отладочную версию модуля в [.filename]#KERN_DEBUGDIR#/[.filename]#KMODDIR#. По умолчанию `KERN_DEBUGDIR` копируется из `DEBUGDIR` и устанавливается в [.filename]#/usr/lib/debug#. Фреймворк позаботится о создании и удалении необходимых каталогов. [[uses-kodi]] == `kodi` Возможные аргументы: (отсутствуют), `noautoplist` Обеспечить поддержку дополнений для package:multimedia/kodi[]. Если указан аргумент `noautoplist`, автоматическое создание `plist` не выполняется. [[uses-lazarus]] == `lazarus` Возможные аргументы: (отсутствуют), `gtk2` (по умолчанию), `qt5`, `qt6`, `flavors` Обеспечить поддержку портов на основе package:editors/lazarus[]. Если аргументы не предоставлены или указан `gtk2`, приложение lazarus-app будет собрано с интерфейсом `gtk2`, и порт package:editors/lazarus[] будет собран с интерфейсом `gtk2`. Если указан аргумент `qt5`, приложение lazarus-app собирается с интерфейсом `qt5`. Если указан аргумент `qt6`, приложение lazarus-app собирается с интерфейсом `qt6`. Если указан аргумент `flavors`, приложение `lazarus-app` собирается с поддержкой функций флейворов. Если порт не требует автоматической компиляции файлов проекта lazarus, можно определить следующую переменную: `NO_LAZBUILD`= `yes` Доступны следующие переменные для портов: `LAZARUS_PROJECT_FILES`:: Список lpi-файлов. Он не должен быть пустым. По умолчанию: пусто `LAZARUS_DIR`:: Путь к каталогу установки lazarus. По умолчанию: [.filename]#${LOCALBASE}/share/lazarus-${LAZARUS_VER}# `LAZBUILD_ARGS`:: Дополнительные аргументы lazbuild. В большинстве случаев это может быть `-d`. Подробнее см. man:lazbuild[1]. По умолчанию: пусто `LAZARUS_NO_FLAVORS`:: Не собирать эти флейворы lazarus. Если `LAZARUS_NO_FLAVORS` не определена, то предполагаются все допустимые флейворы lazarus. `WANT_LAZARUS_DEVEL`:: Если установлено значение `yes`, то используйте package:lazarus/devel[] как зависимость сборки. [[uses-ldap]] == `ldap` Возможные аргументы: (нет), <версия>, клиент, сервер Регистрирует зависимость от пакета package:net/openldap[]. Использует конкретную `<версию>` (без точечной нотации), если она указана. В противном случае пытается найти установленную версию. При необходимости возвращается к версии по умолчанию, указанной в `bsd.default-versions.mk`. `client` указывает на зависимость во время выполнения от клиентской библиотеки. Это также значение по умолчанию. `server` указывает на зависимость во время выполнения от сервера. Следующие переменные могут быть доступны для порта: `IGNORE_WITH_OPENLDAP`:: Эта переменная может быть определена, если порты не поддерживают одну или несколько версий OpenLDAP. `WITH_OPENLDAP_VER`:: Пользовательская переменная для установки версии OpenLDAP. `OPENLDAP_VER`:: Обнаруженная версия OpenLDAP. [[uses-lha]] == `lha` Возможные аргументы: (отсутствуют) Установите `EXTRACT_SUFX` в `.lzh` [[uses-libarchive]] == `libarchive` Возможные аргументы: (отсутствуют) Регистрирует зависимость от package:archivers/libarchive[]. Любые порты, зависящие от libarchive, должны включать `USES=libarchive`. [[uses-libedit]] == `libedit` Возможные аргументы: (отсутствуют) Регистрирует зависимость от package:devel/libedit[]. Все порты, зависящие от libedit, должны включать `USES=libedit`. [[uses-libtool]] == `libtool` Возможные аргументы: (нет), `keepla`, `build` Исправляет скрипты `libtool`. Это должно быть добавлено во все порты, использующие `libtool`. Аргумент `keepla` может быть использован для сохранения файлов [.filename]#.la#. Некоторые порты не поставляются с собственной копией libtool и требуют зависимость во время сборки от package:devel/libtool[], используйте аргумент `:build` для добавления такой зависимости. [[uses-linux]] == `linux` Возможные аргументы: `c6`, `c7` Порт фреймворка совместимости с Linux. Укажите `c6` для зависимостей от пакетов CentOS 6. Укажите `c7` для зависимостей от пакетов CentOS 7. Доступные пакеты: * `allegro` * `alsa-plugins-oss` * `alsa-plugins-pulseaudio` * `alsalib` * `atk` * `avahi-libs` * `base` * `cairo` * `cups-libs` * `curl` * `cyrus-sasl2` * `dbusglib` * `dbuslibs` * `devtools` * `dri` * `expat` * `flac` * `fontconfig` * `gdkpixbuf2` * `gnutls` * `graphite2` * `gtk2` * `harfbuzz` * `jasper` * `jbigkit` * `jpeg` * `libasyncns` * `libaudiofile` * `libelf` * `libgcrypt` * `libgfortran` * `libgpg-error` * `libmng` * `libogg` * `libpciaccess` * `libsndfile` * `libsoup` * `libssh2` * `libtasn1` * `libthai` * `libtheora` * `libv4l` * `libvorbis` * `libxml2` * `mikmod` * `naslibs` * `ncurses-base` * `nspr` * `nss` * `openal` * `openal-soft` * `openldap` * `openmotif` * `openssl` * `pango` * `pixman` * `png` * `pulseaudio-libs` * `qt` * `qt-x11` * `qtwebkit` * `scimlibs` * `sdl12` * `sdlimage` * `sdlmixer` * `sqlite3` * `tcl85` * `tcp_wrappers-libs` * `tiff` * `tk85` * `ucl` * `xorglibs` [[uses-llvm]] == `llvm` Возможные аргументы: (нет), `_XY_`, min=`_XY_`, max=`_XY_`, build, run, lib Добавляет зависимость от LLVM. По умолчанию это зависимость для сборки, если не переопределено опциями `run` или `lib`. Версия по умолчанию задаётся в `LLVM_DEFAULT`. Также можно указать конкретную версию. Минимальную и максимальную версии можно указать с помощью параметров `min` и `max` соответственно. Фреймворк портов экспортирует следующие переменные в порт: `LLVM_VERSION`:: Версия, выбранная из аргументов к llvm.mk `LLVM_PORT`:: Выбранный порт llvm `LLVM_CONFIG`:: `llvm-config` выбранного порта `LLVM_LIBLLVM`:: `libLLVM.so` выбранного порта `LLVM_PREFIX`:: Префикс инсталляции выбранного порта [[uses-localbase]] == `localbase` Возможные аргументы: (отсутствуют), `ldflags` Гарантирует использование библиотек из зависимостей в `LOCALBASE` вместо библиотек из базовой системы. Указывает `ldflags` для добавления `-L${LOCALBASE}/lib` в `LDFLAGS` вместо `LIBS`. Порты, зависящие от библиотек, которые также присутствуют в базовой системе, должны использовать эту опцию. Она также используется внутри несколькими другими `USES`. [[uses-lua]] == `lua` Возможные аргументы: (нет), `_XY_`, `_XY_+`, `-_XY_`, `_XY_-_ZA_`, `module`, `flavors`, `build`, `run`, `env` Добавляет зависимость от Lua. По умолчанию это зависимость от библиотеки, если не переопределено опциями `build` и/или `run`. Опция `env` предотвращает добавление любой зависимости, при этом все обычные переменные остаются определёнными. Версия по умолчанию устанавливается с помощью обычного механизма `DEFAULT_VERSIONS`, если только версия или диапазон версий не указаны в качестве аргумента, например, `51` или `51-54`. Приложения, использующие Lua, обычно собираются только для одной версии Lua. Однако модули библиотек, предназначенные для загрузки кодом Lua, должны использовать опцию `module` для сборки с несколькими вариантами. Для получения дополнительной информации см. crossref:special[using-lua,Использование Lua]. [[uses-luajit]] == `luajit` Возможные аргументы: (нет), `_X_` Добавляет зависимость от среды выполнения luajit. Можно указать конкретную версию _X_. Доступные версии: `luajit`, `luajit-devel`, `luajit-openresty` После включения [.filename]#bsd.port.options.mk# или [.filename]#bsd.port.pre.mk# порт может проверять эти переменные: `LUAJIT_VER`:: Выбранная версия luajit `LUAJIT_INCDIR`:: Путь к заголовочным файлам luajit `LUAJIT_LUAVER`:: Какой версии спецификации luajit выбрана (2.0 для luajit, иначе 2.1) Для получения дополнительной информации см. crossref:special[using-lua,Использование Lua]. [[uses-lxqt]] == `lxqt` Возможные аргументы: (отсутствуют) Обработка зависимостей для рабочей среды LXQt. Используйте `USE_LXQT` для выбора необходимых компонентов для порта. Дополнительную информацию см. в разделе crossref:special[using-lxqt,Использование LXQt]. [[uses-magick]] == `magick` Возможные аргументы: (нет), `_X_`, `build`, `nox11`, `run`, `test` Добавить зависимость библиотеки от `ImageMagick`. Можно указать конкретную версию _X_. Доступные версии: `6` и `7` (по умолчанию). `nox11` означает, что требуется версия порта `-nox11`. `build`, `run` и `test` добавляют зависимости на сборку, выполнение и тестирование для ImageMagick. [[uses-makeinfo]] == `makeinfo` Возможные аргументы: (отсутствуют) Добавить зависимость во время сборки на `makeinfo`, если его нет в базовой системе. [[uses-makeself]] == `makeself` Возможные аргументы: (отсутствуют) Указывает, что файлы дистрибутива являются архивами makeself и устанавливает соответствующие зависимости. [[uses-mate]] == `mate` Возможные аргументы: (отсутствуют) Предоставляет простой способ зависимостей от компонентов MATE. Компоненты должны быть перечислены в `USE_MATE`. Доступные компоненты: * `autogen` * `caja` * `common` * `controlcenter` * `desktop` * `dialogs` * `docutils` * `icontheme` * `intlhack` * `intltool` * `libmatekbd` * `libmateweather` * `marco` * `menus` * `notificationdaemon` * `panel` * `pluma` * `polkit` * `session` * `settingsdaemon` Зависимость по умолчанию — на время сборки и выполнения, её можно изменить с помощью `:build` или `:run`. Например: [.programlisting] .... USES= mate USE_MATE= menus:build intlhack .... [[uses-meson]] == `meson` Возможные аргументы: (нет), `muon ` Предоставить поддержку для проектов на основе Meson. Дополнительную информацию смотрите в crossref:special[using-meson,Использование `meson`]. Если указан аргумент `muon`, в порт добавляется зависимость от package:devel/muon[]. [[uses-metaport]] == `metaport` Возможные аргументы: (отсутствуют) Устанавливает следующие переменные для упрощения создания метапорта: `MASTER_SITES`, `DISTFILES`, `EXTRACT_ONLY`, `NO_BUILD`, `NO_INSTALL`, `NO_MTREE`, `NO_ARCH`. [[uses-minizip]] == `minizip` Возможные аргументы: (отсутствуют), `ng` Добавляет зависимость библиотеки от package:archivers/minizip[] или package:archivers/minizip-ng[] соответственно. [[uses-mlt]] == `mlt` Возможные аргументы: `7`, `nodepend` Обеспечить поддержку портов, зависящих от package:multimedia/mlt7[]. Если указан аргумент `nodepend`, зависимости от библиотек не создаются. Этот аргумент имеет смысл только для портов multimedia/mlt7*. [[uses-mysql]] == `mysql` Возможные аргументы: (отсутствуют), `_версия_`, `client` (по умолчанию), `server`, `embedded` Предоставить поддержку MySQL. Если версия не указана, попытаться определить установленную версию. В случае неудачи использовать версию по умолчанию, MySQL-5.6. Возможные версии: `55`, `55m`, `55p`, `56`, `56p`, `56w`, `57`, `57p`, `80`, `100m`, `101m` и `102m`. Суффиксы `m` и `p` обозначают флейворы MariaDB и Percona для MySQL. Параметры `server` и `embedded` добавляют зависимости во время сборки и выполнения на сервер MySQL. При использовании `server` или `embedded` добавьте `client`, чтобы также включить зависимость от [.filename]#libmysqlclient.so#. Порт может установить `IGNORE_WITH_MYSQL`, если некоторые версии не поддерживаются. Фреймворк устанавливает `MYSQL_VER` в обнаруженную версию MySQL. [[uses-mono]] == `mono` Возможные аргументы: (отсутствуют), `nuget` Добавляет зависимость от фреймворка Mono (в настоящее время только C#), устанавливая соответствующие зависимости. Укажите `nuget`, если порт использует пакеты nuget. `NUGET_DEPENDS` должен содержать имена и версии пакетов nuget в формате `_имя_=_версия_`. Можно добавить необязательное расположение пакета (origin), используя `_имя_=_версия_:_ расположение _`. Вспомогательная цель `buildnuget` выведет содержимое `NUGET_DEPENDS` на основе предоставленного файла [.filename]#packages.config#. [[uses-motif]] == `motif` Возможные аргументы: (отсутствуют) Использует package:x11-toolkits/open-motif[] как зависимость библиотеки. Конечные пользователи могут установить `WANT_LESSTIF` в [.filename]#make.conf#, чтобы использовать package:x11-toolkits/lesstif[] как зависимость вместо package:x11-toolkits/open-motif[]. Аналогично, установка `WANT_OPEN_MOTIF_DEVEL` в [.filename]#make.conf# добавит зависимость от package:x11-toolkits/open-motif-devel[] [[uses-mpi]] == `mpi` Возможные аргументы: `mpich` (по умолчанию), `openmpi` Обеспечить поддержку портов, зависящих от `MPI`. Если указан аргумент `mpich`, в порт добавляется зависимость от package:net/mpich[]. Если указан аргумент `openmpi`, в порт добавляется зависимость от package:net/openmpi[]. Фреймворк портов предоставляет следующие переменные, которые могут быть прочитаны портом: `MPI_LIBS`:: Библиотеки, необходимые для связывания программ с использованием `MPI`. `MPI_CFLAGS`:: Флаги компилятора, необходимые для сборки программ с использованием `MPI`. `MPICC`:: Расположение исполняемого файла `mpicc`. По умолчанию: [.filename]#${MPI_HOME}/bin/mpicc#. `MPICXX`:: Расположение исполняемого файла `mpicxx`. По умолчанию: [.filename]#${MPI_HOME}/bin/mpicxx#. `MPIF90`:: Расположение исполняемого файла `mpif90`. По умолчанию: [.filename]#${MPI_HOME}/bin/mpif90#. `MPIFC`:: То же, что и выше. `MPI_HOME`:: Каталог установки `MPI`. По умолчанию используется `${LOCALBASE}` для `MPICH`. `MPIEXEC`:: Расположение исполняемого файла `mpiexec`. По умолчанию: [.filename]#${MPI_HOME}/bin/mpiexec#. `MPIRUN`:: Расположение исполняемого файла `mpirun`. По умолчанию: [.filename]#${MPI_HOME}/bin/mpirun#. [[uses-ncurses]] == `ncurses` Возможные аргументы: (нет), `base`, `port` Использует ncurses и устанавливает некоторые полезные переменные. [[uses-nextcloud]] == `nextcloud` Возможные аргументы: (отсутствуют) Добавляет поддержку приложений Nextcloud, добавляя зависимость во время выполнения на package:www/nextcloud[]. [[uses-ninja]] == `ninja` Возможные аргументы: (нет), `build`, `make` (по умолчанию), `run` Если указаны аргументы `build` или `run`, это соответственно добавляет зависимость во время сборки или выполнения от пакета package:devel/ninja[]. Если указан `make` или аргументы не предоставлены, используется ninja для сборки порта вместо make. `make` подразумевает `build`. Если переменная `NINJA_DEFAULT` установлена в `samurai`, тогда зависимости устанавливаются для пакета package:devel/samurai[] вместо этого. [[uses-nodejs]] == `nodejs` Возможные аргументы: (нет), `build`, `run`, `current`, `lts`, `10`, `14`, `16`, `17`. Использует nodejs. Добавляет зависимость от пакета package:www/node*[]. Если указана поддерживаемая версия, то также необходимо указать `run` и/или `build`. [[uses-objc]] == `objc` Возможные аргументы: (отсутствуют) Добавить зависимости Objective C (компилятор, библиотека времени выполнения), если базовая система их не поддерживает. [[uses-ocaml]] == `ocaml` Возможные аргументы: (нет), `build`, `camlp4`, `dune`, `findlib`, `findplist`, `ldconfig`, `run`, `tk`, `tkbuild`, `tkrun`, `wash` Обеспечить поддержку OCaml. Если аргументы не указаны, по умолчанию используются `build`, `run`. Если указан аргумент `build`, то package:lang/ocamlc[] добавляется в `BUILD_DEPENDS`, `EXTRACT` и `PATCH_DEPENDS`. Если указан аргумент `camlp4`, то для сборки используется package:devel/ocamlp4[]. Если указан аргумент `dune`, то package:devel/ocaml-dune[] используется как система сборки. Если указан аргумент `findlib`, то для установки пакетов будет использоваться `ocamlfind`. Каталоги пакетов будут автоматически удалены. Если указан аргумент `findplist`, то содержимое целевых каталогов `findlib` будет добавлено автоматически. Если указан аргумент `ldconfig`, то файл [.filename]#ld.conf# OCaml будет обработан автоматически. При использовании `dune` Dune может устанавливать stublibs в каталог(-и) пакетов site-lib или в отдельный каталог ниже каталога `DUNE_LIBDIR` site-lib. Установите, если порт устанавливает общие библиотеки в ocaml Если указан аргумент `run`, добавить ocamlc в `RUN_DEPENDS`. Если указан аргумент `tk`, то в порт добавляется зависимость на сборку и выполнение от пакета package:x11-toolkits/ocaml-labltk[]. Подразумевает `tkbuild` и `tkrun`. Если указан аргумент `tkbuild`, то пакет package:x11-toolkits/ocaml-labltk[] добавляется в `BUILD_DEPENDS`, `EXTRACT` и `PATCH_DEPENDS`. Если указан аргумент `tkrun`, то package:x11-toolkits/ocaml-labltk[] добавляется в `RUN_DEPENDS`. Если указан аргумент `wash`, общие каталоги Ocaml будут очищены при удалении. Полезно при установке в нестандартный `PREFIX`. Портом могут быть установлены следующие переменные: `OCAML_PKGDIRS`:: Каталоги в site-lib для обработки, если указан аргумент `findlib`. По умолчанию: `${PORTNAME}` `OCAML_LDLIBS`:: Каталоги в `PREFIX`, которые будут автоматически добавлены/удалены из [.filename]#ld.conf#. По умолчанию: `${OCAML_SITELIBDIR}/${PORTNAME}` `OCAML_PACKAGES`:: Список пакетов для сборки и установки. По умолчанию `${PORTNAME}` [[uses-octave]] == `octave` Возможные аргументы: (нет), env Использует package:math/octave[]. `env` загружает только одну переменную окружения `OCTAVE_VERSION`. [[uses-openal]] == `openal` Возможные аргументы: `al`, `soft` (по умолчанию), `si`, `alut` Использует OpenAL. Бэкенд может быть указан, с программной реализацией по умолчанию. Пользователь может указать предпочтительный бэкенд с помощью `WANT_OPENAL`. Допустимые значения для этой настройки: `soft` (по умолчанию) и `si`. [[uses-pathfix]] == `pathfix` Возможные аргументы: (отсутствуют) Ищите [.filename]#Makefile.in# и [.filename]#configure# в `PATHFIX_WRKSRC` (по умолчанию `WRKSRC`) и исправляйте стандартные пути, чтобы они соответствовали иерархии FreeBSD. Например, исправляется каталог установки для файлов [.filename]#.pc# `pkgconfig` на [.filename]#${PREFIX}/libdata/pkgconfig#. Если порт использует `USES=autoreconf`, [.filename]#Makefile.am# будет автоматически добавлен в `PATHFIX_MAKEFILEIN`. Если порт crossref:uses[uses-cmake,`USES=cmake`], он будет искать файл [.filename]#CMakeLists.txt# в `PATHFIX_WRKSRC`. При необходимости это имя файла по умолчанию можно изменить с помощью `PATHFIX_CMAKELISTSTXT`. [[uses-pear]] == `pear` Возможные аргументы: `env` Добавляет зависимость от пакета package:devel/pear[]. Настраивает поведение по умолчанию для программного обеспечения, использующего PHP Extension and Application Repository. Использование аргументов `env` только устанавливает переменные окружения PEAR. Дополнительную информацию см. в crossref:special[php-pear,Модули PEAR]. [[uses-perl5]] == `perl5` Возможные аргументы: (отсутствуют) Зависит от Perl. Настройка выполняется с помощью `USE_PERL5`. `USE_PERL5` может содержать фазы, в которых используется Perl: `extract`, `patch`, `build`, `run` или `test`. `USE_PERL5` также может содержать `configure`, `modbuild` или `modbuildtiny`, если требуется [.filename]#Makefile.PL#, [.filename]#Build.PL# или вариант [.filename]#Build.PL# для Module::Build::Tiny. `USE_PERL5` по умолчанию имеет значение `build run`. При использовании `configure`, `modbuild` или `modbuildtiny`, `build` и `run` подразумеваются автоматически. См. crossref:special[using-perl,Использование Perl] для получения дополнительной информации. [[uses-pgsql]] == `pgsql` Возможные аргументы: (нет), `_X.Y_`, `_X.Y_+`, `_X.Y_-`, `_X.Y_-_Z.A_` Предоставить поддержку PostgreSQL. Ответственный за порт может указать требуемую версию. Можно указать минимальную и максимальную версии или диапазон; например, `9.0-`, `8.4+`, `8.4-9.2` По умолчанию добавляемая зависимость будет клиентской, но если порту требуются дополнительные компоненты, это можно указать с помощью `WANT_PGSQL=_компонент[:цель]_`; например, `WANT_PGSQL=server:configure pltcl plperl`. Доступные компоненты: * `client` * `contrib` * `docs` * `pgtcl` * `plperl` * `plpython` * `pltcl` * `server` [[uses-php]] == `php` Возможные аргументы: (нет), `phpize`, `ext`, `zend`, `build`, `cli`, `cgi`, `mod`, `web`, `embed`, `pecl`, `flavors`, `noflavors` Обеспечить поддержку PHP. Добавить зависимость во время выполнения на версию PHP по умолчанию, package:lang/php81[]. `phpize`:: Используется для создания расширения PHP. Поддерживает флейворы. `ext`:: Используется для сборки, установки и регистрации расширения PHP. Поддерживает флейворы. `zend`:: Используется для сборки, установки и регистрации Zend-расширения. Поддерживает флейворы. `build`:: Установить PHP также как зависимость во время сборки. `cli`:: Требуется версия PHP для командной строки. `cgi`:: Требуется CGI-версия PHP. `mod`:: Требуется модуль Apache для PHP. `web`:: Требуется модуль Apache или CGI-версия PHP. `embed`:: Требуется встроенная версия библиотеки PHP. `pecl`:: Установить значения по умолчанию для загрузки расширений PHP из репозитория PECL. Включает флейворы. `flavors`:: Включить автоматическую генерацию crossref:flavors[flavors-auto-php,флейворов PHP]. Флейворы будут созданы для всех версий PHP, за исключением указанных в crossref:uses[uses-php-ignore,`IGNORE_WITH_PHP`]. `noflavors`:: Отключить автоматическое создание флейворов PHP. _Должно_ использоваться только с расширениями, предоставляемыми самим PHP. Переменные используются для указания необходимых модулей PHP, а также версий PHP, которые поддерживаются. `USE_PHP`:: Список необходимых расширений PHP во время выполнения. Добавьте `:build` к названию расширения, чтобы указать зависимость во время сборки. Пример: `pcre xml:build gettext` [[uses-php-ignore]] `IGNORE_WITH_PHP`:: Порт не работает с PHP указанной версии. Возможные значения можно посмотреть в содержимом `_ALL_PHP_VERSIONS` в [.filename]#Mk/Uses/php.mk#. При сборке расширения PHP или Zend с помощью `:ext` или `:zend`, можно задать следующие переменные: `PHP_MODNAME`:: Имя расширения PHP или Zend. Значение по умолчанию: `${PORTNAME}`. `PHP_HEADER_DIRS`:: Список подкаталогов, из которых следует устанавливать заголовочные файлы. Фреймворк всегда будет устанавливать заголовочные файлы, находящиеся в том же каталоге, что и расширение. `PHP_MOD_PRIO`:: Приоритет загрузки расширения. Это число от `00` до `99`. + Для расширений, которые не зависят от других расширений, приоритет автоматически устанавливается в `20`, а для расширений, зависящих от другого расширения, приоритет автоматически устанавливается в `30`. Некоторые расширения могут требовать загрузки перед всеми остальными, например, package:www/php56-opcache[]. Некоторые могут требовать загрузки после расширения с приоритетом `30`. В таком случае добавьте `PHP_MOD_PRIO=_XX_` в Makefile порта. Например: + [.programlisting] .... USES= php:ext USE_PHP= wddx PHP_MOD_PRIO= 40 .... Эти переменные доступны для использования в `PKGNAMEPREFIX` или `PKGNAMESUFFIX`: `PHP_PKGNAMEPREFIX`:: Содержит `php_XY_-`, где _XY_ — версия PHP текущей редакции. Используется с расширениями и модулями PHP. `PHP_PKGNAMESUFFIX`:: Содержит `-php_XY_`, где _XY_ — версия PHP текущего варианта. Используется с PHP-приложениями. `PECL_PKGNAMEPREFIX`:: Содержит `php_XY_-pecl-`, где _XY_ — версия PHP текущей редакции. Используется с модулями PECL. [IMPORTANT] ==== С вариантами сборки все расширения PHP, расширения PECL, модули PEAR _должны иметь_ разные имена пакетов, поэтому они должны использовать одну из трёх переменных в `PKGNAMEPREFIX` или `PKGNAMESUFFIX`. ==== [[uses-pkgconfig]] == `pkgconfig` Возможные аргументы: (отсутствуют), `build` (по умолчанию), `run`, `both` Использует package:devel/pkgconf[]. Без аргументов или с аргументом `build` подразумевает зависимость от `pkg-config` во время сборки. `run` подразумевает зависимость во время выполнения, а `both` — зависимости как во время выполнения, так и во время сборки. [[uses-pure]] == `pure` Возможные аргументы: (нет), `ffi` Использует package:lang/pure[]. В основном применяется для сборки портов, зависящих от pure. С аргументом `ffi` подразумевает package:devel/pure-ffi[] как зависимость во время выполнения. [[uses-pyqt]] == `pyqt` Возможные аргументы: (нет), `4`, `5` Использует PyQt. Если порт является частью самого PyQT, установите `PYQT_DIST`. Используйте `USE_PYQT` для выбора необходимых порту компонентов. Доступные компоненты: * `core` * `dbus` * `dbussupport` * `demo` * `designer` * `designerplugin` * `doc` * `gui` * `multimedia` * `network` * `opengl` * `qscintilla2` * `sip` * `sql` * `svg` * `test` * `webkit` * `xml` * `xmlpatterns` Эти компоненты доступны только с PyQT4: * `assistant` * `declarative` * `help` * `phonon` * `script` * `scripttools` Эти компоненты доступны только с PyQT5: * `multimediawidgets` * `printsupport` * `qml` * `serialport` * `webkitwidgets` * `widgets` Зависимость по умолчанию для каждого компонента — это время сборки и выполнения. Чтобы выбрать только сборку или выполнение, добавьте `_build` или `_run` к имени компонента. Например: [.programlisting] .... USES= pyqt USE_PYQT= core doc_build designer_run .... [[uses-pytest]] == `pytest` Возможные аргументы: (нет), 4 Вводит новую зависимость от package:devel/pytest[]. Он определяет цель `do-test`, которая будет правильно запускать тесты. Используйте аргумент, чтобы зависеть от определённой версии package:devel/pytest[]. Для портов, использующих package:devel/pytest[], рекомендуется использовать это вместо конкретной цели `do-test`. Фреймворк предоставляет порту следующие переменные: `PYTEST_ARGS`:: Дополнительные аргументы для pytest (по умолчанию пусто). `PYTEST_IGNORED_TESTS`:: списки шаблонов `pytest -k` для игнорирования тестов (по умолчанию пустые). Для тестов, которые не должны проходить, например, требующих доступа к базе данных. `PYTEST_BROKEN_TESTS`:: списки шаблонов `pytest -k` тестов для игнорирования (по умолчанию пустые). Для сломанных тестов, которые требуют исправления. В дополнение следующие переменные могут быть заданы пользователем: `PYTEST_ENABLE_IGNORED_TESTS`:: Включить тесты, которые в противном случае игнорируются `PYTEST_IGNORED_TESTS`. `PYTEST_ENABLE_BROKEN_TESTS`:: Включить тесты, которые в противном случае игнорируются `PYTEST_BROKEN_TESTS`. `PYTEST_ENABLE_ALL_TESTS`:: Включить тесты, которые в противном случае игнорируются `PYTEST_IGNORED_TESTS` и `PYTEST_BROKEN_TESTS`. [[uses-python]] == `python` Возможные аргументы: (нет), `_X.Y_`, `_X.Y+_`, `_-X.Y_`, `_X.Y-Z.A_`, `patch`, `build`, `run`, `test` Использует Python. Можно указать поддерживаемую версию или диапазон версий. Если Python требуется только во время сборки, выполнения или тестирования, его можно установить как зависимость для сборки, выполнения или тестирования с помощью `build`, `run` или `test`. Если Python также требуется на этапе исправлений, используйте `patch`. Дополнительную информацию см. в разделе crossref:special[using-python,Использование Python]. `USES=python:env` можно использовать, когда необходимы переменные, экспортируемые фреймворком, но зависимость от Python не требуется. Это может быть полезно при использовании с crossref:uses[uses-shebangfix,`USES=shebangfix`], если цель состоит только в исправлении shebang без добавления зависимости от Python. [[uses-qmail]] == `qmail` Возможные аргументы: (нет), `build`, `run`, `both`, `vars` Использует package:mail/qmail[]. С аргументом `build` подразумевается зависимость от `qmail` во время сборки. Аргумент `run` подразумевает зависимость во время выполнения. Использование без аргументов или с аргументом `both` подразумевает зависимости как во время выполнения, так и во время сборки. Аргумент `vars` только устанавливает переменные QMAIL для использования в порте. [[uses-qmake]] == `qmake` Возможные аргументы: (отсутствуют), `norecursive`, `outsource`, `no_env`, `no_configure` Использует QMake для настройки. Для получения дополнительной информации см. crossref:special[using-qmake,Использование `qmake`]. [[uses-qt]] == `qt` Возможные аргументы: `5`, `6`, `no_env` Добавить зависимость от компонентов Qt. `no_env` передаётся напрямую в `USES= qmake`. Подробнее см. в crossref:special[using-qt,Использование Qt]. [[uses-qt-dist]] == `qt-dist` Возможные аргументы: (нет) или `5` и (нет) или `6` и (нет) или один из `3d`, `5compat`, `base`, `charts`, `connectivity`, `datavis3d`, `declarative`, `doc`, `languageserver`, `gamepad`, `graphicaleffects`, `imageformats`, `location`, `lottie`, `multimedia`, `networkauth`, `positioning`, `quick3d`, `quickcontrols2`, `quickcontrols`, `quicktimeline`, `remoteobjects`, `script`, `scxml`, `sensors`, `serialbus`, `serialport`, `shadertools`, `speech`, `svg`, `tools`, `translations`, `virtualkeyboard`, `wayland`, `webchannel`, `webengine`, `webglplugin`, `websockets`, `webview`, `x11extras`, `xmlpatterns`. Предоставляет поддержку сборки компонентов Qt 5 и Qt 6. Обеспечивает настройку соответствующей конфигурации окружения для сборки порта. [[qt5-dist-example]] .Сборка компонентов Qt 5 [example] ==== Порт представляет собой компонент `networkauth` из Qt 5, который входит в файл дистрибутива `networkauth`. [.programlisting] .... PORTNAME= networkauth DISTVERSION= ${QT5_VERSION} USES= qt-dist:5 .... ==== [[qt6-dist-example]] .Сборка компонентов Qt 6 [example] ==== Порт представляет собой компонент `websockets` из Qt 6, который входит в файл дистрибутива `websockets`. [.programlisting] .... PORTNAME= websockets PORTVERSION= ${QT6_VERSION} USES= qt-dist:6 .... ==== Если `PORTNAME` не совпадает с именем компонента, его можно передать как аргумент в `qt-dist`. [[qt5-dist-example-explicit]] .Сборка компонентов Qt 5 с разными именами [example] ==== Порт представляет собой компонент `gui` из Qt 5, который входит в файл дистрибутива `base`. [.programlisting] .... PORTNAME= gui DISTVERSION= ${QT5_VERSION} USES= qt-dist:5,base .... ==== [[uses-readline]] == `readline` Возможные аргументы: (нет), `port` Использует readline в качестве зависимости библиотеки и устанавливает `CPPFLAGS` и `LDFLAGS` по необходимости. Если используется аргумент `port` или если readline отсутствует в базовой системе, добавляет зависимость от package:devel/readline[] [[uses-ruby]] == `ruby` Возможные аргументы: (нет), `build`, `extconf`, `run`, `setup` Предоставить поддержку для портов, связанных с Ruby. `(none)` без аргументов добавляет зависимость во время выполнения на package:lang/ruby[]. `build` добавляет зависимость на package:lang/ruby[] во время сборки. `extconf` указывает, что порт использует extconf.rb для настройки. `run` добавляет зависимость на package:lang/ruby[] во время выполнения. Это также значение по умолчанию. `setup` указывает, что порт использует setup.rb для настройки и сборки. Пользователь может определить следующие переменные: `RUBY_VER`:: Альтернативная короткая версия ruby в виде `x.y`. `RUBY_DEFAULT_VER`:: Установите (например) `2.7`, чтобы использовать `ruby27` в качестве версии по умолчанию. `RUBY_ARCH`:: Установите имя архитектуры (например, i386-freebsd7). Следующие переменные экспортируются для использования портом: `RUBY`:: Установлена в полный путь к ruby. Если задано, значения следующих переменных автоматически получаются из исполняемого файла ruby: `RUBY_ARCH`, `RUBY_ARCHLIBDIR`, `RUBY_LIBDIR`, `RUBY_SITEARCHLIBDIR`, `RUBY_SITELIBDIR`, `RUBY_VER` и `RUBY_VERSION` `RUBY_VER`:: Установлена в альтернативную короткую версию ruby в формате `x.y`. `RUBY_EXTCONF`:: Установлена в альтернативное имя для extconf.rb (по умолчанию: extconf.rb). `RUBY_EXTCONF_SUBDIRS`:: Установлена в список подкаталогов, если включено несколько модулей. `RUBY_SETUP`:: Установлена в альтернативное имя для setup.rb (по умолчанию: setup.rb). [[uses-samba]] == `samba` Возможные аргументы: `build`, `env`, `lib`, `run` Обработать зависимость от Samba. `env` не добавит никаких зависимостей, а только установит переменные. `build` и `run` добавят зависимости во время сборки и выполнения на [.filename]#smbd#. `lib` добавит зависимость на [.filename]#libsmbclient.so#. Экспортируемые переменные: `SAMBA_PORT`:: Расположение порта Samba по умолчанию. `SAMBA_INCLUDEDIR`:: Расположение заголовочных файлов Samba. `SAMBA_LIBS`:: Каталог, в котором доступны общие библиотеки Samba. `SAMBA_LDB_PORT`:: Расположение порта ldb, используемого выбранной версией Samba (например, package:databases/ldb28[]). Он должен использоваться, если порту требуется зависимость от той же версии ldb, что и у выбранной версии Samba. `SAMBA_TALLOC_PORT`:: Расположение порта talloc, используемого выбранной версией Samba. Следует использовать, если порту требуется зависеть от той же версии talloc, что и выбранная версия Samba. `SAMBA_TDB_PORT`:: Расположение порта TDB, используемого выбранной версией Samba. Его следует использовать, если порту требуется зависеть от той же версии TDB, что и выбранная версия Samba. `SAMBA_TEVENT_PORT`:: Расположение порта tevent, используемого выбранной версией Samba. Это следует использовать, если порту необходимо зависеть от той же версии tevent, что и выбранная версия Samba. [[uses-scons]] == `scons` Возможные аргументы: (отсутствуют) Предоставить поддержку для использования package:devel/scons[]. Дополнительную информацию смотрите в crossref:special[using-scons,Использование `scons`]. [[uses-sdl]] == `sdl` Возможные аргументы: `sdl` Обеспечить поддержку использования пакетов `SDL`. Переменная `USE_SDL` является обязательной и указывает, какие компоненты добавить в зависимости. Поддерживаемые в настоящее время модули `SDL1.2`: * sdl * console * gfx * image * mixer * mm * net * pango * sound * ttf Текущие поддерживаемые модули `SDL2`: * sdl2 * gfx2 * image2 * mixer2 * net2 * sound2 * ttf2 Текущие поддерживаемые модули `SDL3`: * sdl3 * image3 * ttf3 [[uses-shared-mime-info]] == `shared-mime-info` Возможные аргументы: (отсутствуют) Использует update-mime-database из пакета package:misc/shared-mime-info[]. Это автоматически добавит шаг post-install таким образом, что сам порт всё ещё может указать собственный шаг post-install при необходимости. Также добавляет запись crossref:plist[plist-keywords-shared-mime-info,`@shared-mime-info`] в plist. [[uses-shebangfix]] == `shebangfix` Возможные аргументы: (отсутствуют) Множество программ используют некорректные расположения для интерпретаторов скриптов, особенно [.filename]#/usr/bin/perl# и [.filename]#/bin/bash#. Макрос shebangfix исправляет строки shebang в скриптах, перечисленных в `SHEBANG_REGEX`, `SHEBANG_GLOB` или `SHEBANG_FILES`. `SHEBANG_REGEX`:: Содержит _одно_ расширенное регулярное выражение и используется с аргументом `-iregex` в man:find[1]. См. crossref:uses[uses-shebangfix-ex-regex,`USESshebangfix` с `SHEBANG_REGEX`]. `SHEBANG_GLOB`:: Содержит список шаблонов, используемых с аргументом `-name` в man:find[1]. См. crossref:uses[uses-shebangfix-ex-glob,`USESshebangfix` с `SHEBANG_GLOB`]. `SHEBANG_FILES`:: Содержит список файлов или шаблонов man:sh[1]. Макрос shebangfix выполняется из `${WRKSRC}`, поэтому `SHEBANG_FILES` может содержать пути, относительные к `${WRKSRC}`. Также он может работать с абсолютными путями, если требуется исправление файлов вне `${WRKSRC}`. См. crossref:uses[uses-shebangfix-ex-files,`USESshebangfix` с `SHEBANG_FILES`]. В настоящее время Bash, Java, Ksh, Lua, Perl, PHP, Python, Ruby, Tcl и Tk поддерживаются по умолчанию. Существует три переменных конфигурации: `SHEBANG_LANG`:: Список поддерживаемых интерпретаторов. `_interp__CMD`:: Путь к интерпретатору команд в FreeBSD. Значение по умолчанию — `${LOCALBASE}/bin/_interp_`. `_interp__OLD_CMD`:: Список неправильных вызовов интерпретаторов. Обычно это устаревшие пути или пути, используемые в других операционных системах, которые неверны в FreeBSD. Они будут заменены на правильные пути в `_interp__CMD`. + [NOTE] ==== Эти пути _всегда_ будут частью `_interp__OLD_CMD`: `"/usr/bin/env _interp_" /bin/_interp_ /usr/bin/_interp_ /usr/local/bin/_interp_`. ==== + [TIP] ==== `_interp__OLD_CMD` содержит несколько значений. Любая запись с пробелами должна быть заключена в кавычки. См. crossref:uses[uses-shebangfix-ex-ksh,Указание всех путей при добавлении интерпретатора в `USESshebangfix`]. ==== [IMPORTANT] ==== Исправление шебанг-строк выполняется на этапе `patch`. Если скрипты создаются с некорректными шебанг-строками на этапе `build`, процесс сборки (например, скрипт [.filename]#configure# или [.filename]#Makefiles#) должен быть исправлен или ему должен быть указан правильный путь (например, с помощью `CONFIGURE_ENV`, `CONFIGURE_ARGS`, `MAKE_ENV` или `MAKE_ARGS`) для генерации корректных шебанг-строк. Правильные пути для поддерживаемых интерпретаторов доступны в `_interp__CMD`. ==== [TIP] ==== При использовании с crossref:uses[uses-python,`USES=python`], если цель состоит только в исправлении shebang, но зависимость от самого Python не требуется, используйте `USES=python:env`. ==== [[uses-shebangfix-ex-lua]] .Добавление другого интерпретатора в `USES=shebangfix` [example] ==== Чтобы добавить другой интерпретатор, установите `SHEBANG_LANG`. Например: [.programlisting] .... SHEBANG_LANG= lua .... ==== [[uses-shebangfix-ex-ksh]] .Указание всех путей при добавлении интерпретатора в `USES=shebangfix` [example] ==== Если они ещё не были определены и не было значений по умолчанию для `_interp__OLD_CMD` и `_interp__CMD`, запись Ksh можно определить как: [.programlisting] .... SHEBANG_LANG= ksh ksh_OLD_CMD= "/usr/bin/env ksh" /bin/ksh /usr/bin/ksh ksh_CMD= ${LOCALBASE}/bin/ksh .... ==== [[uses-shebangfix-ex-strange]] .Добавление нестандартного расположения интерпретатора [example] ==== Некоторое программное обеспечение использует нестандартные пути для интерпретатора. Например, приложение может ожидать, что Python будет расположен в [.filename]#/opt/bin/python2.7#. Нестандартный путь, который нужно заменить, можно указать в [.filename]#Makefile# порта: [.programlisting] .... python_OLD_CMD= /opt/bin/python2.7 .... ==== [[uses-shebangfix-ex-regex]] .`USES=shebangfix` с `SHEBANG_REGEX` [example] ==== Для исправления всех файлов в `${WRKSRC}/scripts`, оканчивающихся на [.filename]#.pl#, [.filename]#.sh# или [.filename]#.cgi#, выполните: [.programlisting] .... USES= shebangfix SHEBANG_REGEX= ./scripts/.*\.(sh|pl|cgi) .... [NOTE] ====== `SHEBANG_REGEX` используется при выполнении `find -E`, который применяет современные регулярные выражения, также известные как расширенные регулярные выражения. Подробнее см. в man:re_format[7]. ====== ==== [[uses-shebangfix-ex-glob]] .`USES=shebangfix` с `SHEBANG_GLOB` [example] ==== Для исправления всех файлов в `${WRKSRC}` с окончанием [.filename]#.pl# или [.filename]#.sh# выполните: [.programlisting] .... USES= shebangfix SHEBANG_GLOB= *.sh *.pl .... ==== [[uses-shebangfix-ex-files]] .`USES=shebangfix` с `SHEBANG_FILES` [example] ==== Для исправления файлов [.filename]#script/foobar.pl# и [.filename]#script/*.sh# в `${WRKSRC}` выполните: [.programlisting] .... USES= shebangfix SHEBANG_FILES= scripts/foobar.pl scripts/*.sh .... ==== [[uses-sqlite]] == `sqlite` Возможные аргументы: (нет), `2`, `3` Добавить зависимость от SQLite. Используемая по умолчанию версия — 3, но также возможна версия 2 с использованием модификатора `:2`. [[uses-sbrk]] == `sbrk` Возможные аргументы: (отсутствуют) Помечает порт как `BROKEN` для `aarch64` и `riscv64`. [[uses-ssl]] == `ssl` Возможные аргументы: (нет), `build`, `run` Обеспечить поддержку OpenSSL. Зависимость только для сборки или выполнения может быть указана с использованием `build` или `run`. Эти переменные доступны для использования портом, а также добавлены в `MAKE_ENV`: `OPENSSLBASE`:: Путь к базовой установке OpenSSL. `OPENSSLDIR`:: Путь к файлам конфигурации OpenSSL. `OPENSSLLIB`:: Путь к библиотекам OpenSSL. `OPENSSLINC`:: Путь к заголовочным файлам OpenSSL. `OPENSSLRPATH`:: Если определено, путь, который требуется компоновщику для поиска библиотек OpenSSL. [TIP] ==== Если порт не собирается с вариантом OpenSSL, установите переменную `BROKEN_SSL`, а также, возможно, `BROKEN_SSL_REASON__flavor_`: [.programlisting] .... BROKEN_SSL= libressl BROKEN_SSL_REASON_libressl= needs features only available in OpenSSL .... ==== [[uses-sudo]] == `sudo` Возможные аргументы: (отсутствуют) Добавляет зависимость времени выполнения от package:security/sudo[]. [[uses-tar]] == `tar` Возможные аргументы: (нет), `Z`, `bz2`, `bzip2`, `lzma`, `tbz`, `tbz2`, `tgz`, `txz`, `xz`, `zst`, `zstd` Установите `EXTRACT_SUFX` в `.tar`, `.tar.Z`, `.tar.bz2`, `.tar.bz2`, `.tar.lzma`, `.tbz`, `.tbz2`, `.tgz`, `.txz`, `.tar.xz`, `.tar.zst` или `.tar.zstd` соответственно. [[uses-tcl]] == `tcl` Возможные аргументы: _version_, `wrapper`, `build`, `run`, `tea` Добавьте зависимость от Tcl. Конкретная версия может быть запрошена с помощью _version_. Версия может быть пустой, одной или несколькими точными номерами версий (в настоящее время `84`, `85` или `86`), либо минимальным номером версии (в настоящее время `84+`, `85+` или `86+`). Чтобы запросить только неспецифичную для версии обёртку, используйте `wrapper`. Зависимость только на время сборки или выполнения может быть указана с помощью `build` или `run`. Для сборки порта с использованием Tcl Extension Architecture используйте `tea`. После включения [.filename]#bsd.port.pre.mk# порт может проверить результаты с помощью этих переменных: * `TCL_VER`: выбранная версия Tcl в формате major.minor * `TCLSH`: полный путь к интерпретатору Tcl * `TCL_LIBDIR`: путь к библиотекам Tcl * `TCL_INCLUDEDIR`: путь к заголовочным файлам Tcl на языке C * `TCL_PKG_LIB_PREFIX`: Префикс библиотеки, согласно TIP595 * `TCL_PKG_STUB_POSTFIX`: Постфикс библиотеки заглушки * `TK_VER`: выбранная версия Tk в формате major.minor * `WISH`: полный путь к интерпретатору Tk * `TK_LIBDIR`: путь к библиотекам Tk * `TK_INCLUDEDIR`: путь к заголовочным файлам Tk на языке C [[uses-terminfo]] == `terminfo` Возможные аргументы: (отсутствуют) Добавляет crossref:plist[plist-keywords-terminfo,`@terminfo`] в файл [.filename]#plist#. Используется, когда порт устанавливает файлы [.filename]#*.terminfo# в каталог [.filename]#${PREFIX}/share/misc#. [[uses-tex]] == `tex` Возможные аргументы: (отсутствуют) Обеспечить поддержку tex. Загружает все стандартные переменные для портов, связанных с TEX, и не добавляет зависимостей от других портов. Переменные используются для указания того, какие модули TEX требуются. `USE_TEX`:: Список необходимых расширений TEX во время выполнения. Добавьте `:build` к названию расширения, чтобы добавить зависимость на время сборки, `:run` — для зависимости во время выполнения, `:test` — для зависимости во время тестирования, `:extract` — для зависимости во время извлечения. Пример: `base texmf:build source:run` Текущие возможные аргументы следующие: * `base` * `texmf` * `source` * `docs` * `web2c` * `kpathsea` * `ptexenc` * `basic` * `tlmgr` * `texlua` * `texluajit` * `synctex` * `xpdfopen` * `dvipsk` * `dvipdfmx` * `xdvik` * `gbklatex` * `formats` * `tex` * `latex` * `pdftex` * `jadetex` * `luatex` * `ptex` * `xetex` * `xmltex` * `texhash` * `updmap` * `fmtutil` [[uses-tk]] == `tk` Так же, как аргументы для `tcl` Небольшая обёртка при использовании Tcl и Tk. Возвращаются те же переменные, что и при использовании Tcl. [[uses-trigger]] == `trigger` Возможные аргументы: (отсутствуют) Предоставить поддержку для портов, требующих выполнения триггеров с помощью man:pkg[8]. Триггеры выполняются в конце транзакции, если условия выполнены. Следующая переменная может быть установлена портами: `TRIGGERS`:: Список триггеров для пакета. По умолчанию используется `${PORTNAME}`. Триггеры указываются в формате UCL и обычно размещаются в каталоге [.filename]#files/# порта. [[uses-uidfix]] == `uidfix` Возможные аргументы: (отсутствуют) Изменяет некоторые стандартные настройки (в основном переменные) системы сборки, чтобы позволить установку этого порта обычным пользователем. Попробуйте это в порте перед использованием crossref:uses[uses-fakeroot,`USES=fakeroot`] или исправлением. [[uses-uniquefiles]] == `uniquefiles` Возможные аргументы: (нет), `dirs` Сделать файлы или каталоги 'уникальными', добавляя префикс или суффикс. Если используется аргумент `dirs`, порту требуется префикс (и только префикс) на основе `UNIQUE_PREFIX` для стандартных каталогов `DOCSDIR`, `EXAMPLESDIR`, `DATADIR`, `WWWDIR`, `ETCDIR`. Эти переменные доступны для портов: * `UNIQUE_PREFIX`: Префикс, используемый для каталогов и файлов. По умолчанию: `${PKGNAMEPREFIX}`. * `UNIQUE_PREFIX_FILES`: Список файлов, которые необходимо предварить префиксом. По умолчанию: пусто. * `UNIQUE_SUFFIX`: Суффикс, используемый для файлов. По умолчанию: `${PKGNAMESUFFIX}`. * `UNIQUE_SUFFIX_FILES`: Список файлов, к которым необходимо добавить суффикс. По умолчанию: пусто. [[uses-vala]] == `vala` Возможные аргументы: `build`, `lib`, `no_depend` Добавляет зависимости сборки или библиотеки на package:lang/vala[]. Аргумент `no_depend` зарезервирован для самого package:lang/vala[]. [[uses-varnish]] == `varnish` Возможные аргументы: `4` (по умолчанию), `6`, `7` Обрабатывает зависимости для Varnish Cache. Добавляет зависимость от пакета `package:www/varnish*[]`. [[uses-waf]] == `waf` Возможные аргументы: (отсутствуют) Обеспечить поддержку портов, использующих систему сборки `waf`. Это подразумевает `USES=python:build`. Следующие переменные экспортируются для использования портом: `WAF_CMD`:: Расположение скрипта `waf`. Установите этот параметр, если скрипт `waf` не находится в [.filename]#WRKSRC/waf#. `CONFIGURE_TARGET`:: Цель для `configure`. По умолчанию – `configure`. `ALL_TARGET`:: Цель для `all`. По умолчанию `build`. `INSTALL_TARGET`:: Цель для `install`. По умолчанию `install`. [[uses-webplugin]] == `webplugin` Возможные аргументы: (нет), `ARGS` Автоматически создавать и удалять символические ссылки для каждого приложения, поддерживающего фреймворк webplugin. `ARGS` может быть одним из: * `gecko`: поддержка плагинов на основе Gecko * `native`: поддержка плагинов для Gecko, Opera и WebKit-GTK * `linux`: поддержка Linux плагинов * `all` (по умолчанию, неявно): поддержка всех типов плагинов * (отдельные записи): поддерживаются только перечисленные браузеры Эти переменные можно настроить: * `WEBPLUGIN_FILES`: Значение по умолчанию отсутствует, должно быть установлено вручную. Файлы плагинов для установки. * `WEBPLUGIN_DIR`: Каталог для установки файлов плагина, по умолчанию [.filename]#PREFIX/lib/browser_plugins/WEBPLUGIN_NAME#. Установите это значение, если порт устанавливает файлы плагина вне стандартного каталога, чтобы избежать битых символических ссылок. * `WEBPLUGIN_NAME`: Конечный каталог для установки файлов плагина, по умолчанию `PKGBASE`. [[uses-xfce]] == `xfce` Возможные аргументы: (нет), `gtk2` Предоставить поддержку для портов, связанных с Xfce. Подробности см. в crossref:special[using-xfce,Использование Xfce]. Аргумент `gtk2` указывает, что порт требует поддержки GTK2. Он добавляет дополнительные возможности, предоставляемые некоторыми основными компонентами, например, package:x11/libxfce4menu[] и package:x11-wm/xfce4-panel[]. [[uses-xorg]] == `xorg` Возможные аргументы: (отсутствуют) Предоставляет простой способ зависеть от компонентов X.org. Компоненты должны быть перечислены в `USE_XORG`. Доступные компоненты: [[using-x11-components]] .Доступные компоненты X.Org [cols="1,1", frame="none", options="header"] |=== | Имя | Описание |`dmx` |Библиотека расширений DMX |`fontenc` |Библиотека fontenc |`fontutil` |Создать индекс файлов шрифтов X в каталоге |`ice` |Библиотека Inter Client Exchange для X11 |`libfs` |Библиотека FS |`pciaccess` |Универсальная библиотека доступа к PCI |`pixman` |Библиотека для низкоуровневого управления пикселями |`sm` |Библиотека управления сеансами для X11 |`x11` |Библиотека X11 |`xau` |Библиотека протокола аутентификации для X11 |`xaw` |Библиотека X Athena Widgets |`xaw6` |Библиотека X Athena Widgets |`xaw7` |Библиотека X Athena Widgets |`xbitmaps` |Данные растровых изображений X.Org |`xcb` |Библиотека с интерфейсом языка С для X протокола (XCB) |`xcomposite` |Библиотека расширения X Composite |`xcursor` |X библиотека загрузки курсоров на стороне клиента |`xdamage` |Библиотека расширения X Damage |`xdmcp` |Библиотека протокола управления дисплейным менеджером X (XDMCP) |`xext` |Библиотека расширений X11 |`xfixes` |Библиотека расширений X Fixes |`xfont` |Библиотека шрифтов X |`xfont2` |Библиотека шрифтов X |`xft` |Клиентский API шрифтов для приложений X |`xi` |Библиотека расширения X Input |`xinerama` |Библиотека X11 Xinerama |`xkbfile` |Библиотека файлов XKB |`xmu` |Библиотека X Miscellaneous Utilities |`xmuu` |Библиотека X Miscellaneous Utilities |`xorg-macros` |X.Org макросы разработки aclocal |`xorg-server` |Сервер X.Org X и относящиеся к нему программы |`xorgproto` |Заголовочные файлы протокола xorg |`xpm` |Библиотека X Pixmap |`xpresent` |Библиотека расширений X Present |`xrandr` |Библиотека расширений X Resize and Rotate |`xrender` |Библиотека расширения X Render |`xres` |Библиотека мониторинга ресурсов X Resource usage |`xscrnsaver` |Библиотека XScrnSaver |`xshmfence` |Примитив синхронизации "SyncFence" в разделяемой памяти |`xt` |Библиотека X Toolkit |`xtrans` |Абстрактный сетевой код для X |`xtst` |Расширение X Test |`xv` |Библиотека расширения X Video |`xvmc` |Библиотека X Video Extension Motion Compensation |`xxf86dga` |Расширение X DGA |`xxf86vm` |Расширение X Vidmode |=== [[uses-xorg-cat]] == `xorg-cat` Возможные аргументы: `app`, `data`, `doc`, `driver`, `font`, `lib`, `proto`, `util`, `xserver` и (без аргументов) или один из `autotools` (по умолчанию), `meson` Обеспечивает поддержку сборки компонентов Xorg. Управляет настройкой общих зависимостей и необходимой конфигурационной среды. Предназначено только для компонентов Xorg. Категория должна соответствовать категориям вышестоящего репозитория. Второй аргумент — используемая система сборки. По умолчанию используется `autotools`, но также поддерживается `meson`. [[uses-zig]] == `zig` Возможные аргументы: (отсутствуют) Обеспечить поддержку построения портов на основе package:lang/zig[]. Фреймворк предоставляет следующие переменные порту: `ZIG_TUPLE`:: Список зависимостей zig, необходимых для сборки порта. Каждая запись представляет собой триплет из имени, URL-адреса и каталога, где ожидается найти зависимость. Эти триплеты можно сгенерировать, выполнив команду: [source, shell] .... % make make-zig-tuple .... [[uses-zip]] == `zip` Возможные аргументы: (нет), `infozip` Указывает, что файлы дистрибутива используют алгоритм сжатия ZIP. Для файлов, использующих алгоритм InfoZip, необходимо передать аргумент `infozip`, чтобы установить соответствующие зависимости.