# SOME DESCRIPTIVE TITLE # Copyright (C) YEAR The FreeBSD Project # This file is distributed under the same license as the FreeBSD Documentation package. # Vladlen Popolitov , 2025, 2026. msgid "" msgstr "" "Project-Id-Version: FreeBSD Documentation VERSION\n" "POT-Creation-Date: 2026-02-22 15:58+0000\n" "PO-Revision-Date: 2026-02-25 04:45+0000\n" "Last-Translator: Vladlen Popolitov \n" "Language-Team: Russian \n" "Language: ru\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && " "n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" "X-Generator: Weblate 4.17\n" #. type: YAML Front Matter: description #: documentation/content/en/books/porters-handbook/special/_index.adoc:1 #, no-wrap msgid "Special considerations when creating a new FreeBSD Port" msgstr "Особые соображения при создании нового порта FreeBSD" #. type: YAML Front Matter: title #: documentation/content/en/books/porters-handbook/special/_index.adoc:1 #, no-wrap msgid "Chapter 6. Special Considerations" msgstr "Глава 6. Особые соглашения" #. type: Title = #: documentation/content/en/books/porters-handbook/special/_index.adoc:14 #, no-wrap msgid "Special Considerations" msgstr "Особые соглашения" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:52 msgid "" "This section explains the most common things to consider when creating a " "port." msgstr "" "Имеется ещё несколько вещей, которые вы должны иметь в виду при создании " "порта. Этот раздел описывает наиболее часто встречающиеся из них." #. type: Title == #: documentation/content/en/books/porters-handbook/special/_index.adoc:54 #, no-wrap msgid "Splitting long files" msgstr "Разделение длинных файлов" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:61 msgid "" "Sometimes, port [.filename]#Makefiles# can be really long. For example, " "rust ports can have a very long `CARGO_CRATES` list. In other cases, the [." "filename]#Makefile# might have code that varies depending on the " "architecture. In such cases, it can be convenient to split the original [." "filename]#Makefile# into several files. [.filename]#bsd.port.mk# " "automatically includes some types of [.filename]#Makefiles# into the main " "port [.filename]#Makefile#." msgstr "" "Иногда [.filename]#Makefiles# могут быть очень длинными. Например, порты " "rust могут содержать очень длинный список `CARGO_CRATES`. В других случаях [." "filename]#Makefile# может содержать код, который варьируется в зависимости " "от архитектуры. В таких ситуациях может быть удобно разделить исходный [." "filename]#Makefile# на несколько файлов. [.filename]#bsd.port.mk# " "автоматически включает некоторые типы [.filename]#Makefiles# в основной [." "filename]#Makefile# порта." #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:63 msgid "" "These are the files that the framework handles automatically if they are " "found:" msgstr "" "Вот файлы, которые система обрабатывает автоматически, если они обнаружены:" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:65 msgid "" "[.filename]#Makefile.crates#. An example can be found in package:audio/" "ebur128[]." msgstr "" "[.filename]#Makefile.crates#. Пример можно найти в пакете package:audio/" "ebur128[]." #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:66 msgid "" "[.filename]#Makefile.inc#. An example can be found in package:net/ntp[]." msgstr "" "[.filename]#Makefile.inc#. Пример можно найти в пакете package:net/ntp[]." #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:67 msgid "[.filename]#Makefile.${ARCH}-${OPSYS}#" msgstr "[.filename]#Makefile.${ARCH}-${OPSYS}#" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:68 msgid "" "[.filename]#Makefile.${OPSYS}#. An example can be found in package:net/cvsup-" "static[]." msgstr "" "[.filename]#Makefile.${OPSYS}#. Пример можно найти в пакете package:net/" "cvsup-static[]." #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:69 msgid "[.filename]#Makefile.${ARCH}#" msgstr "[.filename]#Makefile.${ARCH}#" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:70 msgid "[.filename]#Makefile.local#" msgstr "[.filename]#Makefile.local#" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:76 msgid "" "It is also usual practice to split the packaging list of the port into " "several files if the list varies a lot from one architecture to another or " "depends on the selected flavor. In this case, the [.filename]#pkg-plist# " "file for each architecture is named following the pattern [.filename]#pkg-" "plist.${ARCH}# or [.filename]#pkg-plist.${FLAVOR}#. The framework does not " "create the packaging list automatically if multiple [.filename]#pkg-plist# " "files exist. It is the responsibility of the porter to select the proper [." "filename]#pkg-plist# and assign it to the `PLIST` variable. Examples on how " "to deal with this can be found in package:audio/logitechmediaserver[] and " "package:deskutils/libportal[]." msgstr "" "Также распространённой практикой является разделение списка пакетов порта на " "несколько файлов, если список сильно различается в зависимости от " "архитектуры или выбранного флейвора. В этом случае файл [.filename]#pkg-" "plist# для каждой архитектуры именуется по шаблону [.filename]#pkg-plist." "${ARCH}# или [.filename]#pkg-plist.${FLAVOR}#. Фреймворк не создаёт список " "пакетов автоматически, если существует несколько файлов [.filename]#pkg-" "plist#. Ответственность за выбор подходящего файла [.filename]#pkg-plist# и " "его присвоение переменной `PLIST` лежит на того, кто делает порт. Примеры " "работы с этим можно найти в портах package:audio/logitechmediaserver[] и " "package:deskutils/libportal[]." #. type: Title == #: documentation/content/en/books/porters-handbook/special/_index.adoc:78 #, no-wrap msgid "Staging" msgstr "Использование каталогов стадии" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:85 msgid "" "[.filename]#bsd.port.mk# expects ports to work with a \"stage directory\". " "This means that a port must not install files directly to the regular " "destination directories (that is, under `PREFIX`, for example) but instead " "into a separate directory from which the package is then built. In many " "cases, this does not require root privileges, making it possible to build " "packages as an unprivileged user. With staging, the port is built and " "installed into the stage directory, `STAGEDIR`. A package is created from " "the stage directory and then installed on the system. Automake tools refer " "to this concept as `DESTDIR`, but in FreeBSD, `DESTDIR` has a different " "meaning (see crossref:testing[porting-prefix,`PREFIX` and `DESTDIR`])." msgstr "" "[.filename]#bsd.port.mk# ожидает, что порты будут работать с \"каталогом " "стадии\". Это означает, что порт не должен устанавливать файлы напрямую в " "обычные целевые каталоги (например, под `PREFIX`), а вместо этого в " "отдельный каталог, из которого затем собирается пакет. Во многих случаях это " "не требует прав root, что позволяет собирать пакеты от имени " "непривилегированного пользователя. При использовании стадии порт собирается " "и устанавливается в каталог стадии `STAGEDIR`. Пакет создаётся из каталога " "стадии и затем устанавливается в систему. Инструменты Automake называют эту " "концепцию `DESTDIR`, но в FreeBSD `DESTDIR` имеет другое значение (см. " "crossref:testing[porting-prefix,`PREFIX` и `DESTDIR`])." #. type: delimited block = 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:92 msgid "" "No port _really_ needs to be root. It can mostly be avoided by using " "crossref:uses[uses-uidfix,`USES=uidfix`]. If the port still runs commands " "like man:chown[8], man:chgrp[1], or forces owner or group with man:" "install[1] then use crossref:uses[uses-fakeroot,`USES=fakeroot`] to fake " "those calls. Some patching of the port's [.filename]#Makefiles# will be " "needed." msgstr "" "Ни один порт _на самом деле_ не должен работать от root. Этого в большинстве " "случаев можно избежать, используя crossref:uses[uses-uidfix,`USES=uidfix`]. " "Если порт всё ещё выполняет команды, такие как man:chown[8], man:chgrp[1], " "или принудительно устанавливает владельца или группу с помощью man:" "install[1], то используйте crossref:uses[uses-fakeroot,`USES=fakeroot`], " "чтобы подделать эти вызовы. Потребуется некоторая правка [." "filename]#Makefiles# порта." #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:97 msgid "" "Meta ports, or ports that do not install files themselves but only depend on " "other ports, must avoid needlessly extracting the man:mtree[8] to the stage " "directory. This is the basic directory layout of the package, and these " "empty directories will be seen as orphans. To prevent man:mtree[8] " "extraction, add this line:" msgstr "" "Метапорты, то есть порты, которые не устанавливают файлы непосредственно, а " "только зависят от других портов, должны по возможности избегать распаковки " "man:mtree[8] в каталог сборки. Это основная иерархия каталогов пакета, и эти " "пустые каталоги будут выглядеть лишними. Для предотвращения распаковки man:" "mtree[8] добавьте эту строку:" #. type: delimited block . 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:101 #, no-wrap msgid "NO_MTREE=\tyes\n" msgstr "NO_MTREE=\tyes\n" #. type: delimited block = 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:107 msgid "" "Metaports should use crossref:special[uses-metaport,`USES=metaport`]. It " "sets up defaults for ports that do not fetch, build, or install anything." msgstr "" "Метапорты должны использовать crossref:special[uses-metaport," "`USES=metaport`]. Это устанавливает значения по умолчанию для портов, " "которые не загружают, не собирают и не устанавливают ничего." #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:113 msgid "" "Staging is enabled by prepending `STAGEDIR` to paths used in the `pre-" "install`, `do-install`, and `post-install` targets (see the examples through " "the book). Typically, this includes `PREFIX`, `ETCDIR`, `DATADIR`, " "`EXAMPLESDIR`, `DOCSDIR`, and so on. Directories should be created as part " "of the `post-install` target. Avoid using absolute paths whenever possible." msgstr "" "Этап подготовки включается путем добавления `STAGEDIR` к путям, используемым " "в целях `pre-install`, `do-install` и `post-install` (см. примеры в книге). " "Обычно это включает `PREFIX`, `ETCDIR`, `DATADIR`, `EXAMPLESDIR`, `DOCSDIR` " "и т. д. Каталоги должны создаваться как часть цели `post-install`. По " "возможности избегайте использования абсолютных путей." #. type: delimited block = 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:117 msgid "" "Ports that install kernel modules must prepend `STAGEDIR` to their " "destination, by default [.filename]#/boot/modules#." msgstr "" "Порты, которые устанавливают модули ядра, должны добавлять `STAGEDIR` к пути " "назначения, по умолчанию это [.filename]#/boot/modules#." #. type: Title === #: documentation/content/en/books/porters-handbook/special/_index.adoc:120 #, no-wrap msgid "Handling Symbolic Links" msgstr "Обработка символических ссылок" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:125 msgid "" "When creating a symbolic link, relative ones are strongly recommended. Use `" "${RLN}` to create relative symbolic links. It uses man:install[1] under the " "hood to automatically figure out the relative link to create." msgstr "" "При создании символической ссылки настоятельно рекомендуется использовать " "относительные пути. Используйте `${RLN}` для создания относительных " "символических ссылок. Эта команда использует man:install[1] для " "автоматического определения относительной ссылки, которую нужно создать." #. type: Block title #: documentation/content/en/books/porters-handbook/special/_index.adoc:127 #, no-wrap msgid "Create Relative Symbolic Links Automatically" msgstr "Автоматическое создание относительных символических ссылок" #. type: delimited block = 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:131 msgid "" "`${RLN}` uses man:install[1]'s relative symbolic feature which frees the " "porter of computing the relative path." msgstr "" "`${RLN}` использует относительную символическую ссылку из man:install[1], " "что освобождает сборщика порта от вычисления относительного пути." #. type: delimited block . 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:137 #, no-wrap msgid "" "${RLN} ${STAGEDIR}${PREFIX}/lib/libfoo.so.42 ${STAGEDIR}${PREFIX}/lib/libfoo.so\n" "${RLN} ${STAGEDIR}${PREFIX}/libexec/foo/bar ${STAGEDIR}${PREFIX}/bin/bar\n" "${RLN} ${STAGEDIR}/var/cache/foo ${STAGEDIR}${PREFIX}/share/foo\n" msgstr "" "${RLN} ${STAGEDIR}${PREFIX}/lib/libfoo.so.42 ${STAGEDIR}${PREFIX}/lib/libfoo.so\n" "${RLN} ${STAGEDIR}${PREFIX}/libexec/foo/bar ${STAGEDIR}${PREFIX}/bin/bar\n" "${RLN} ${STAGEDIR}/var/cache/foo ${STAGEDIR}${PREFIX}/share/foo\n" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:140 msgid "Will generate:" msgstr "Будет создано:" #. type: delimited block . 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:150 #, no-wrap msgid "" "% ls -lF ${STAGEDIR}${PREFIX}/lib\n" "lrwxr-xr-x 1 nobody nobody 181 Aug 3 11:27 libfoo.so@ -> libfoo.so.42\n" "-rwxr-xr-x 1 nobody nobody 15 Aug 3 11:24 libfoo.so.42*\n" "% ls -lF ${STAGEDIR}${PREFIX}/bin\n" "lrwxr-xr-x 1 nobody nobody 181 Aug 3 11:27 bar@ -> ../libexec/foo/bar\n" "% ls -lF ${STAGEDIRDIR}${PREFIX}/share\n" "lrwxr-xr-x 1 nobody nobody 181 Aug 3 11:27 foo@ -> ../../../var/cache/foo\n" msgstr "" "% ls -lF ${STAGEDIR}${PREFIX}/lib\n" "lrwxr-xr-x 1 nobody nobody 181 Aug 3 11:27 libfoo.so@ -> libfoo.so.42\n" "-rwxr-xr-x 1 nobody nobody 15 Aug 3 11:24 libfoo.so.42*\n" "% ls -lF ${STAGEDIR}${PREFIX}/bin\n" "lrwxr-xr-x 1 nobody nobody 181 Aug 3 11:27 bar@ -> ../libexec/foo/bar\n" "% ls -lF ${STAGEDIRDIR}${PREFIX}/share\n" "lrwxr-xr-x 1 nobody nobody 181 Aug 3 11:27 foo@ -> ../../../var/cache/foo\n" #. type: Title == #: documentation/content/en/books/porters-handbook/special/_index.adoc:155 #, no-wrap msgid "Bundled Libraries" msgstr "Встроенные библиотеки" #. type: delimited block = 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:158 msgid "" "This section explains why bundled dependencies are considered bad and what " "to do about them." msgstr "" "Этот раздел объясняет, почему встроенные зависимости считаются плохими и что " "с этим делать." #. type: Title === #: documentation/content/en/books/porters-handbook/special/_index.adoc:160 #, no-wrap msgid "Why Bundled Libraries Are Bad" msgstr "Почему встроенные библиотеки — это плохо" #. type: delimited block = 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:165 msgid "" "Some software requires the porter to locate third-party libraries and add " "the required dependencies to the port. Other software bundles all necessary " "libraries into the distribution file. The second approach seems easier at " "first, but there are some serious drawbacks:" msgstr "" "Некоторое программное обеспечение требует от упаковщика найти сторонние " "библиотеки и добавить необходимые зависимости в порт. Другое ПО включает все " "необходимые библиотеки в дистрибутивный файл. Второй подход кажется проще на " "первый взгляд, но имеет серьёзные недостатки:" #. type: delimited block = 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:167 msgid "" "This list is loosely based on the https://fedoraproject.org/wiki/Packaging:" "No_Bundled_Libraries[Fedora] and https://wiki.gentoo.org/wiki/" "Why_not_bundle_dependencies[Gentoo] wikis, both licensed under the https://" "creativecommons.org/licenses/by-sa/3.0/[CC-BY-SA 3.0] license." msgstr "" "Этот список частично основан на вики https://fedoraproject.org/wiki/" "Packaging:No_Bundled_Libraries[Fedora] и https://wiki.gentoo.org/wiki/" "Why_not_bundle_dependencies[Gentoo], оба распространяются по лицензии " "https://creativecommons.org/licenses/by-sa/3.0/[CC-BY-SA 3.0]." #. type: Labeled list #: documentation/content/en/books/porters-handbook/special/_index.adoc:168 #, no-wrap msgid "Security" msgstr "Безопасность" #. type: delimited block = 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:174 msgid "" "If vulnerabilities are found in the upstream library and fixed there, they " "might not be fixed in the library bundled with the port. One reason could " "be that the author is not aware of the problem. This means that the porter " "must fix them, or upgrade to a non-vulnerable version, and send a patch to " "the author. This all takes time, which results in software being vulnerable " "longer than necessary. This in turn makes it harder to coordinate a fix " "without unnecessarily leaking information about the vulnerability." msgstr "" "Если уязвимости обнаружены в вышестоящей библиотеке и исправлены там, они " "могут остаться неисправленными в библиотеке, поставляемой с портом. Одной из " "причин может быть то, что автор не знает о проблеме. Это означает, что " "портировщик должен исправить их или обновить до не уязвимой версии и " "отправить исправление автору. Всё это требует времени, что приводит к тому, " "что программное обеспечение остаётся уязвимым дольше, чем необходимо. Это, в " "свою очередь, затрудняет координацию исправления без неоправданного " "раскрытия информации об уязвимости." #. type: Labeled list #: documentation/content/en/books/porters-handbook/special/_index.adoc:175 #, no-wrap msgid "Bugs" msgstr "Ошибки" #. type: delimited block = 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:177 msgid "" "This problem is similar to the problem with security in the last paragraph, " "but generally less severe." msgstr "" "Эта проблема аналогична проблеме с безопасностью в последнем абзаце, но в " "целом менее серьезная." #. type: Labeled list #: documentation/content/en/books/porters-handbook/special/_index.adoc:178 #, no-wrap msgid "Forking" msgstr "Ветвление" #. type: delimited block = 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:182 msgid "" "It is easier for the author to fork the upstream library once it is " "bundled. While convenient on first sight, it means that the code diverges " "from upstream making it harder to address security or other problems with " "the software. A reason for this is that patching becomes harder." msgstr "" "Автору проще создать форк upstream-библиотеки после её включения в " "дистрибутив. Хотя на первый взгляд это кажется удобным, такой подход " "приводит к расхождению кода с исходным репозиторием, что усложняет " "исправление уязвимостей и других проблем в ПО. Одна из причин — затруднённое " "применение патчей." #. type: delimited block = 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:185 msgid "" "Another problem of forking is that because code diverges from upstream, bugs " "get solved over and over again instead of just once at a central location. " "This defeats the idea of open source software in the first place." msgstr "" "Еще одна проблема при создании форка заключается в том, что из-за " "расхождения кода с основной веткой, ошибки исправляются снова и снова, " "вместо того чтобы быть исправленными один раз в центральном месте. Это " "противоречит самой идее открытого программного обеспечения." #. type: Labeled list #: documentation/content/en/books/porters-handbook/special/_index.adoc:186 #, no-wrap msgid "Symbol collision" msgstr "Конфликты символов" #. type: delimited block = 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:191 msgid "" "When a library is installed on the system, it might collide with the bundled " "version. This can cause immediate errors at compile or link time. It can " "also cause errors when running the program which might be harder to track " "down. The latter problem could be caused because the versions of the two " "libraries are incompatible." msgstr "" "Когда библиотека установлена в системе, может возникнуть конфликт с " "встроенной в порт версией. Это может привести к немедленным ошибкам во время " "компиляции или компоновки. Также могут возникать ошибки при запуске " "программы, которые сложнее отследить. Последняя проблема может быть вызвана " "несовместимостью версий двух библиотек." #. type: Labeled list #: documentation/content/en/books/porters-handbook/special/_index.adoc:192 #, no-wrap msgid "Licensing" msgstr "Лицензирование" #. type: delimited block = 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:194 msgid "" "When bundling projects from different sources, license issues can arise more " "easily, especially when licenses are incompatible." msgstr "" "При объединении проектов из различных источников могут возникать проблемы с " "лицензиями, особенно если лицензии несовместимы." #. type: Labeled list #: documentation/content/en/books/porters-handbook/special/_index.adoc:195 #, no-wrap msgid "Waste of resources" msgstr "Растрата ресурсов" #. type: delimited block = 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:199 msgid "" "Bundled libraries waste resources on several levels. It takes longer to " "build the actual application, especially if these libraries are already " "present on the system. At run-time, they can take up unnecessary memory " "when the system-wide library is already loaded by one program and the " "bundled library is loaded by another program." msgstr "" "Библиотеки, поставляемые в комплекте, растрачивают ресурсы на нескольких " "уровнях. Сборка самого приложения занимает больше времени, особенно если эти " "библиотеки уже присутствуют в системе. Во время выполнения они могут " "занимать дополнительную память, когда общесистемная библиотека уже загружена " "одной программой, а входящая в комплект библиотека загружена другой " "программой." #. type: Labeled list #: documentation/content/en/books/porters-handbook/special/_index.adoc:200 #, no-wrap msgid "Waste of effort" msgstr "Пустая трата усилий" #. type: delimited block = 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:204 msgid "" "When a library needs patches for FreeBSD, these patches have to be " "duplicated again in the bundled library. This wastes developer time because " "the patches might not apply cleanly. It can also be hard to notice that " "these patches are required in the first place." msgstr "" "Когда библиотеке требуются патчи для FreeBSD, эти патчи приходится " "дублировать в составе библиотеки. Это приводит к потере времени " "разработчиков, поскольку патчи могут применяться некорректно. Кроме того, " "бывает сложно сразу заметить, что эти патчи вообще необходимы." #. type: Title === #: documentation/content/en/books/porters-handbook/special/_index.adoc:206 #, no-wrap msgid "What to do About Bundled Libraries" msgstr "Что делать со встроенными библиотеками" #. type: delimited block = 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:210 msgid "" "Whenever possible, use the unbundled version of the library by adding a " "`LIB_DEPENDS` to the port. If such a port does not exist yet, consider " "creating it." msgstr "" "По возможности используйте независимую версию библиотеки, добавив " "`LIB_DEPENDS` в порт. Если такого порта ещё не существует, рассмотрите " "возможность его создания." #. type: delimited block = 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:212 msgid "" "Only use bundled libraries if the upstream has a good track record on " "security and using unbundled versions leads to overly complex patches." msgstr "" "Используйте встроенные библиотеки только в том случае, если разработчик " "имеет хорошую репутацию в вопросах безопасности, а использование внешних " "версий приводит к излишне сложным исправлениям." #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:220 msgid "" "In some very special cases, for example emulators, like Wine, a port has to " "bundle libraries, because they are in a different architecture, or they have " "been modified to fit the software's use. In that case, those libraries " "should not be exposed to other ports for linking. Add `BUNDLE_LIBS=yes` to " "the port's [.filename]#Makefile#. This will tell man:pkg[8] to not compute " "provided libraries. Always ask the {portmgr} before adding this to a port." msgstr "" "В некоторых особых случаях, например, для эмуляторов, таких как Wine, порт " "должен включать библиотеки, потому что они предназначены для другой " "архитектуры или были изменены для использования в данном программном " "обеспечении. В таком случае эти библиотеки не должны быть доступны для " "связывания с другими портами. Добавьте `BUNDLE_LIBS=yes` в [." "filename]#Makefile# порта. Это укажет man:pkg[8] не учитывать " "предоставляемые библиотеки. Всегда спрашивайте {portmgr}, прежде чем " "добавлять это в порт." #. type: Title == #: documentation/content/en/books/porters-handbook/special/_index.adoc:223 #, no-wrap msgid "Shared Libraries" msgstr "Динамические библиотеки" #. type: delimited block = 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:227 msgid "" "If the port installs one or more shared libraries, define a `USE_LDCONFIG` " "make variable, which will instruct a [.filename]#bsd.port.mk# to run `" "${LDCONFIG} -m` on the directory where the new library is installed (usually " "[.filename]#PREFIX/lib#) during `post-install` target to register it into " "the shared library cache. This variable, when defined, will also facilitate " "addition of an appropriate `@exec /sbin/ldconfig -m` and `@unexec /sbin/" "ldconfig -R` pair into [.filename]#pkg-plist#, so that a user who installed " "the package can start using the shared library immediately and de-" "installation will not cause the system to still believe the library is there." msgstr "" "Если ваш порт устанавливает одну или несколько динамических библиотек, " "определите переменную `USE_LDCONFIG`, которая приведёт к запуску из [." "filename]#bsd.port.mk# команды `${LDCONFIG} -m` относительно каталога, в " "который устанавливается новая библиотека (как правило, это [." "filename]#PREFIX/lib#), во время выполнения цели `post-install` для её " "регистрации в кэше динамических библиотек. Эта переменная, если она " "определена, также приведёт к добавлению соответствующей пары команд `@exec /" "sbin/ldconfig -m` и `@unexec /sbin/ldconfig -R` в ваш файл [.filename]#pkg-" "plist#, так что пользователь, устанавливающий пакет, сможет сразу же " "использовать динамическую библиотеку, а удаление пакета не приведёт к тому, " "что система будет предполагать, что библиотека всё ещё имеется в наличии." #. type: delimited block . 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:231 #, no-wrap msgid "USE_LDCONFIG=\tyes\n" msgstr "USE_LDCONFIG=\tyes\n" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:235 msgid "" "The default directory can be overridden by setting `USE_LDCONFIG` to a list " "of directories into which shared libraries are to be installed. For " "example, if the port installs shared libraries into [.filename]#PREFIX/lib/" "foo# and [.filename]#PREFIX/lib/bar# use this in [.filename]#Makefile#:" msgstr "" "Если нужно, вы можете переопределить каталог по умолчанию, задав значение " "`USE_LDCONFIG`, в котором должны быть перечислены каталоги, в которые " "устанавливаются динамические библиотеки. Например, если ваш порт " "устанавливает динамические библиотеки в каталоги [.filename]#PREFIX/lib/foo# " "и [.filename]#PREFIX/lib/bar#, то вы можете в файле [.filename]#Makefile# " "указать следующее:" #. type: delimited block . 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:239 #, no-wrap msgid "USE_LDCONFIG=\t${PREFIX}/lib/foo ${PREFIX}/lib/bar\n" msgstr "USE_LDCONFIG=\t${PREFIX}/lib/foo ${PREFIX}/lib/bar\n" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:242 msgid "" "Please double-check, often this is not necessary at all or can be avoided " "through `-rpath` or setting `LD_RUN_PATH` during linking (see package:lang/" "mosml[] for an example), or through a shell-wrapper which sets " "`LD_LIBRARY_PATH` before invoking the binary, like package:www/seamonkey[] " "does." msgstr "" "Будьте добры перепроверить, т.к. часто это вовсе не является необходимым и " "может быть решено иначе с помощью `-rpath` или установки `LD_RUN_PATH` во " "время компоновки (для примера смотрите package:lang/moscow_ml[]), или с " "помощью сценария-обёртки, который выставляет `LD_LIBRARY_PATH` перед " "запуском исполняемого файла как это делает package:www/seamonkey[]." #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:244 msgid "" "When installing 32-bit libraries on a 64-bit system, use `USE_LDCONFIG32` " "instead." msgstr "" "При установке 32-разрядных библиотек на 64-разрядной системе используйте " "вместо этого `USE_LDCONFIG32`." #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:246 msgid "" "If the software uses crossref:special[using-autotools,autotools], and " "specifically `libtool`, add crossref:uses[uses-libtool,`USES=libtool`]." msgstr "" "Если программное обеспечение использует crossref:special[using-autotools," "autotools], в частности `libtool`, добавьте crossref:uses[uses-libtool," "`USES=libtool`]." #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:248 msgid "" "When the major library version number increments in the update to the new " "port version, all other ports that link to the affected library must have " "their `PORTREVISION` incremented, to force recompilation with the new " "library version." msgstr "" "Если при обновлении порта увеличивается старший номер версии библиотеки, то " "для всех портов, компонуемых с затронутой библиотекой, следует увеличить " "значение `PORTREVISION` для форсирования перекомпиляции с новой версией " "библиотеки." #. type: Title == #: documentation/content/en/books/porters-handbook/special/_index.adoc:250 #, no-wrap msgid "Ports with Distribution Restrictions or Legal Concerns" msgstr "Порты с ограничениями на распространение или с правовым обременением" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:253 msgid "" "Licenses vary, and some of them place restrictions on how the application " "can be packaged, whether it can be sold for profit, and so on." msgstr "" "Лицензии бывают разных видов, и некоторые накладывают ограничение на то, как " "приложение может быть оформлено в виде пакета, может ли оно продаваться для " "извлечения коммерческой выгоды, и так далее." #. type: delimited block = 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:258 msgid "" "It is the responsibility of a porter to read the licensing terms of the " "software and make sure that the FreeBSD project will not be held accountable " "for violating them by redistributing the source or compiled binaries either " "via FTP/HTTP or CD-ROM. If in doubt, please contact the {freebsd-ports}." msgstr "" "На вас, как на человека, портирующего приложение, ложится обязанность " "прочесть лицензионные соглашения на программное обеспечение и " "удостовериться, что проект FreeBSD не будет являться их нарушителем, если " "будет заниматься распространением исходного кода или в бинарном виде по FTP/" "HTTP или на CD-ROM. Если у вас возникли сомнения, то, пожалуйста, обратитесь " "в {freebsd-ports}." #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:261 msgid "" "In situations like this, the variables described in the next sections can be " "set." msgstr "" "В подобных ситуациях можно использовать переменные, описываемые в " "последующих разделах." #. type: Title === #: documentation/content/en/books/porters-handbook/special/_index.adoc:263 #, no-wrap msgid "`NO_PACKAGE`" msgstr "`NO_PACKAGE`" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:267 msgid "" "This variable indicates that we may not generate a binary package of the " "application. For instance, the license may disallow binary redistribution, " "or it may prohibit distribution of packages created from patched sources." msgstr "" "Эта переменная указывает, что мы не можем создавать для приложения двоичный " "пакет. К примеру, лицензия не позволяет бинарное распространение или она " "может запрещать распространение пакетов, созданных из изменённых исходников." #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:270 msgid "" "However, the port's `DISTFILES` may be freely mirrored on FTP/HTTP. They " "may also be distributed on a CD-ROM (or similar media) unless `NO_CDROM` is " "set as well." msgstr "" "Однако файлы `DISTFILES` могут свободно зеркалироваться по FTP/HTTP. Они " "также могут распространяться, используя CD-ROM (или на похожих носителях), " "если не установлена переменная `NO_CDROM`." #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:273 msgid "" "If the binary package is not generally useful, and the application must " "always be compiled from the source code, use `NO_PACKAGE`. For example, if " "the application has configuration information that is site specific hard " "coded into it at compile time, set `NO_PACKAGE`." msgstr "" "`NO_PACKAGE` должна также использоваться, если двоичный пакет, как правило, " "бесполезен, а приложение должно всегда компилироваться из исходного кода. К " "примеру, если в приложение во время компиляции жёстко включается " "конфигурационная информация, привязанная к конкретной системе, то задайте " "переменную `NO_PACKAGE`." #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:275 msgid "" "Set `NO_PACKAGE` to a string describing the reason why the package cannot be " "generated." msgstr "" "Значением переменной `NO_PACKAGE` должна быть строка, описывающая причину, " "по которой пакет не должен создаваться." #. type: Title === #: documentation/content/en/books/porters-handbook/special/_index.adoc:277 #, no-wrap msgid "`NO_CDROM`" msgstr "`NO_CDROM`" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:281 msgid "" "This variable alone indicates that, although we are allowed to generate " "binary packages, we may put neither those packages nor the port's " "`DISTFILES` onto a CD-ROM (or similar media) for resale. However, the " "binary packages and the port's `DISTFILES` will still be available via FTP/" "HTTP." msgstr "" "Эта переменная указывает на то, что, хотя мы имеем право создавать бинарные " "пакеты, мы не можем помещать эти пакеты или файлы `DISTFILES` порта на CD-" "ROM (или на похожие носители) для перепродажи. Однако бинарные пакеты и " "файлы `DISTFILES` порта будут оставаться доступными посредством FTP/HTTP." #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:283 msgid "" "If this variable is set along with `NO_PACKAGE`, then only the port's " "`DISTFILES` will be available, and only via FTP/HTTP." msgstr "" "Если эта переменная устанавливается вместе с `NO_PACKAGE`, то только файлы " "порта `DISTFILES` будут доступны, и только посредством FTP/HTTP." #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:286 msgid "" "Set `NO_CDROM` to a string describing the reason why the port cannot be " "redistributed on CD-ROM. For instance, use this if the port's license is " "for \"non-commercial\" use only." msgstr "" "В качестве значения `NO_CDROM` должна указываться строка, описывающая " "причины, по которым порт не может распространяться на CD-ROM. К примеру, это " "применяется, если лицензионное соглашение приложения предполагает только его " "\"некоммерческое\" использование." #. type: Title === #: documentation/content/en/books/porters-handbook/special/_index.adoc:288 #, no-wrap msgid "`NOFETCHFILES`" msgstr "`NOFETCHFILES`" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:292 msgid "" "Files defined in `NOFETCHFILES` are not fetchable from any of " "`MASTER_SITES`. An example of such a file is when the file is supplied on " "CD-ROM by the vendor." msgstr "" "Файлы, определённые в переменной `NOFETCHFILES`, не будут извлекаться ни из " "одного из `MASTER_SITES`. Примером такого файла является файл, поставляемый " "на CD-ROM." #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:294 msgid "" "Tools which check for the availability of these files on `MASTER_SITES` have " "to ignore these files and not report about them." msgstr "" "Инструменты, проверяющие доступность этих файлов на `MASTER_SITES`, должны " "игнорировать эти файлы и не сообщать о них." #. type: Title === #: documentation/content/en/books/porters-handbook/special/_index.adoc:296 #, no-wrap msgid "`RESTRICTED`" msgstr "`RESTRICTED`" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:299 msgid "" "Set this variable alone if the application's license permits neither " "mirroring the application's `DISTFILES` nor distributing the binary package " "in any way." msgstr "" "Задайте эту переменную, если лицензия на приложение не позволяет ни " "зеркалировать файлы `DISTFILES`, ни распространять бинарный пакет через FTP/" "HTTP или на CD-ROM." #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:301 msgid "" "Do not set `NO_CDROM` or `NO_PACKAGE` along with `RESTRICTED`, since the " "latter variable implies the former ones." msgstr "" "Ни `NO_CDROM`, ни `NO_PACKAGE` не стоит устанавливать вместе с `RESTRICTED`, " "так как последняя переменная подразумевает первые две." #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:305 msgid "" "Set `RESTRICTED` to a string describing the reason why the port cannot be " "redistributed. Typically, this indicates that the port contains proprietary " "software and that the user will need to manually download the `DISTFILES`, " "possibly after registering for the software or agreeing to accept the terms " "of an EULA." msgstr "" "В качестве значения `RESTRICTED` должна указываться строка, описывающая " "причины, по которым порт нельзя распространять. Обычно это означает, что " "порт использует закрытое программное обеспечение, а пользователь должен " "вручную сгрузить файлы `DISTFILES`, возможно, после заполнения " "регистрационной формы или подтверждения соглашения с условиями EULA." #. type: Title === #: documentation/content/en/books/porters-handbook/special/_index.adoc:307 #, no-wrap msgid "`RESTRICTED_FILES`" msgstr "`RESTRICTED_FILES`" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:311 msgid "" "When `RESTRICTED` or `NO_CDROM` is set, this variable defaults to `" "${DISTFILES} ${PATCHFILES}`, otherwise it is empty. If only some of the " "distribution files are restricted, then set this variable to list them." msgstr "" "Если заданы `RESTRICTED` или `NO_CDROM`, то значение этой переменной по " "умолчанию соответствует `${DISTFILES} ${PATCHFILES}`, в противном случае она " "пуста. Если ограничены в распространении лишь некоторые из дистрибутивных " "файлов, то в этой переменной задаётся их список." #. type: Title === #: documentation/content/en/books/porters-handbook/special/_index.adoc:313 #, no-wrap msgid "`LEGAL_TEXT`" msgstr "`LEGAL_TEXT`" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:317 msgid "" "If the port has legal concerns not addressed by the above variables, set " "`LEGAL_TEXT` to a string explaining the concern. For example, if special " "permission was obtained for FreeBSD to redistribute the binary, this " "variable must indicate so." msgstr "" "Если порт имеет правовое обременение, которое не покрывается перечисленными " "выше переменными, то переменной `LEGAL_TEXT` следует присвоить строку с " "описанием данного обременения. Например, если было получено особое " "разрешение для FreeBSD на распространение двоичного файла, то эта переменная " "должна содержать соответствующее указание." #. type: Title === #: documentation/content/en/books/porters-handbook/special/_index.adoc:319 #, no-wrap msgid "[.filename]#/usr/ports/LEGAL# and `LEGAL`" msgstr "[.filename]#/usr/ports/LEGAL# и `LEGAL`" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:325 msgid "" "A port which sets any of the above variables must also be added to [." "filename]#/usr/ports/LEGAL#. The first column is a glob which matches the " "restricted distfiles. The second column is the port's origin. The third " "column is the output of `make -VLEGAL`." msgstr "" "Порт, содержащий любую из перечисленных выше переменных, также должен быть " "добавлен в [.filename]#/usr/ports/LEGAL#. Первый столбец содержит шаблон " "совпадения с дистрибутивными файлами, имеющими ограничения на " "распространение. Второй столбец содержит корень порта. Третий столбец " "содержит вывод `make -VLEGAL`." #. type: Title === #: documentation/content/en/books/porters-handbook/special/_index.adoc:327 #: documentation/content/en/books/porters-handbook/special/_index.adoc:4231 #: documentation/content/en/books/porters-handbook/special/_index.adoc:4491 #, no-wrap msgid "Examples" msgstr "Примеры" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:330 msgid "" "The preferred way to state \"the distfiles for this port must be fetched " "manually\" is as follows:" msgstr "" "Предпочтительным способом реализации утверждения \"архивы исходных текстов " "для этого порта должны загружаться самостоятельно\" является следующее:" #. type: delimited block . 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:336 #, no-wrap msgid "" ".if !exists(${DISTDIR}/${DISTNAME}${EXTRACT_SUFX})\n" "IGNORE=\tmay not be redistributed because of licensing reasons. Please visit some-website to accept their license and download ${DISTFILES} into ${DISTDIR}\n" ".endif\n" msgstr "" ".if !exists(${DISTDIR}/${DISTNAME}${EXTRACT_SUFX})\n" "IGNORE=\tmay not be redistributed because of licensing reasons. Please visit some-website to accept their license and download ${DISTFILES} into ${DISTDIR}\n" ".endif\n" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:339 msgid "" "This both informs the user, and sets the proper metadata on the user's " "machine for use by automated programs." msgstr "" "Это одновременно и информирует пользователя, и устанавливает нужные " "метаданные на пользовательской машине для использования автоматическими " "программами." #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:341 msgid "" "Note that this stanza must be preceded by an inclusion of [.filename]#bsd." "port.pre.mk#." msgstr "" "Обратите внимание, что данная кляуза должна предшествовать подключению файла " "[.filename]#bsd.port.pre.mk#." #. type: Title == #: documentation/content/en/books/porters-handbook/special/_index.adoc:343 #, no-wrap msgid "Building Mechanisms" msgstr "Механизмы построения" #. type: Title === #: documentation/content/en/books/porters-handbook/special/_index.adoc:346 #, no-wrap msgid "Building Ports in Parallel" msgstr "Параллельное построение портов" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:350 msgid "" "The FreeBSD ports framework supports parallel building using multiple `make` " "sub-processes, which allows SMP systems to utilize all of their available " "CPU power, allowing port builds to be faster and more effective." msgstr "" "Инфраструктура портов FreeBSD поддерживает параллельное построение с " "использованием множественных подпроцессов `make`, что позволяет системам SMP " "задействовать всю доступную мощность CPU, тем самым делая построение портов " "более быстрым и эффективным." #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:355 msgid "" "This is achieved by passing `-jX` flag to man:make[1] running on vendor " "code. This is the default build behavior of ports. Unfortunately, not all " "ports handle parallel building well and it may be required to explicitly " "disable this feature by adding the `MAKE_JOBS_UNSAFE=yes` variable. It is " "used when a port is known to be broken with `-jX` due to race conditions " "causing intermittent build failures." msgstr "" "Это достигается путём передачи флага `-jX` команде man:make[1]. Такое " "построение портов является поведением по умолчанию. К сожалению, не все " "порты поддерживают параллельную сборку достаточно хорошо, и поэтому может " "потребоваться выключить этот механизм явным образом путём добавления " "переменной `MAKE_JOBS_UNSAFE=yes`. Эта переменная используется в случае, " "когда известно, что порт ломается с `-jX`." #. type: delimited block = 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:360 msgid "" "When setting `MAKE_JOBS_UNSAFE`, it is very important to explain either with " "a comment in the [.filename]#Makefile#, or at least in the commit message, " "_why_ the port does not build when enabling. Otherwise, it is almost " "impossible to either fix the problem, or test if it has been fixed when " "committing an update at a later date." msgstr "" "При установке `MAKE_JOBS_UNSAFE` очень важно объяснить либо комментарием в [." "filename]#Makefile#, либо хотя бы в сообщении коммита, _почему_ порт не " "собирается при включении. В противном случае практически невозможно ни " "исправить проблему, ни проверить, была ли она исправлена при коммите " "обновления в дальнейшем." #. type: Title === #: documentation/content/en/books/porters-handbook/special/_index.adoc:363 #, no-wrap msgid "`make`, `gmake`, and `imake`" msgstr "`make`, `gmake` и `imake`" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:366 msgid "" "Several differing `make` implementations exist. Ported software often " "requires a particular implementation, like GNU `make`, known in FreeBSD as " "`gmake`." msgstr "" "Существует несколько различных реализаций `make`. Переносимому программному " "обеспечению часто требуется конкретная реализация, например GNU `make`, " "известная в FreeBSD как `gmake`." #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:368 msgid "If the port uses GNU make, add `gmake` to `USES`." msgstr "Если порт использует GNU make, добавьте `gmake` в `USES`." #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:371 msgid "" "`MAKE_CMD` can be used to reference the specific command configured by the " "`USES` setting in the port's [.filename]#Makefile#. Only use `MAKE_CMD` " "within the application [.filename]##Makefile##s in `WRKSRC` to call the " "`make` implementation expected by the ported software." msgstr "" "`MAKE_CMD` может использоваться для ссылки на конкретную команду, " "настроенную параметром `USES` в [.filename]#Makefile# порта. Используйте " "`MAKE_CMD` только внутри [.filename]##Makefile## приложения в `WRKSRC` для " "вызова реализации `make`, ожидаемой портируемым программным обеспечением." #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:374 msgid "" "If the port is an X application that uses imake to create [." "filename]##Makefile##s from [.filename]##Imakefile##s, set `USES= imake`. " "See the crossref:uses[uses-imake,`USES=imake`] section of crossref:uses[uses," "Using `USES` Macros] for more details." msgstr "" "Если ваш порт является приложением X, которое создает файлы [." "filename]#Makefile# из [.filename]#Imakefile#, используя imake, то " "установите `USES= imake`. Это заставит стадию конфигурирования автоматически " "выполнить `xmkmf -a`. Если флаг `-a` представляет для вашего порта проблему, " "то установите `XMKMF=xmkmf`. Если порт использует imake, но не понимает цель " "`install.man`, то следует установить `NO_INSTALL_MANPAGES=yes`." #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:377 msgid "" "If the port's source [.filename]#Makefile# has something other than `all` as " "the main build target, set `ALL_TARGET` accordingly. The same goes for " "`install` and `INSTALL_TARGET`." msgstr "" "Если исходный [.filename]#Makefile# вашего порта имеет что-нибудь помимо " "`all` в качестве основной цели построения, то задайте соответствующее " "значение `ALL_TARGET`. То же касается `install` и `INSTALL_TARGET`." #. type: Title === #: documentation/content/en/books/porters-handbook/special/_index.adoc:379 #, no-wrap msgid "`configure` Script" msgstr "Сценарий `configure`" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:384 msgid "" "If the port uses the `configure` script to generate [.filename]#Makefile# " "from [.filename]#Makefile.in#, set `GNU_CONFIGURE=yes`. To give extra " "arguments to the `configure` script (the default argument is `--prefix=" "${PREFIX} --infodir=${PREFIX}/${INFO_PATH} --mandir=${PREFIX}/man --build=" "${CONFIGURE_TARGET}`), set those extra arguments in `CONFIGURE_ARGS`. Extra " "environment variables can be passed using `CONFIGURE_ENV`." msgstr "" "Если ваш порт использует сценарий `configure` для получения файлов [." "filename]#Makefile# из файлов [.filename]#Makefile.in#, то установите " "`GNU_CONFIGURE=yes`. Если вы хотите дать дополнительные параметры сценарию " "`configure` (аргументом по умолчанию является `--prefix=${PREFIX} --infodir=" "${PREFIX}/${INFO_PATH} --mandir=${MANPREFIX}/man --build=${CONFIGURE_TARGET}" "`), установите эти параметры в `CONFIGURE_ARGS`. Дополнительные переменные " "окружения можно передать, используя переменную `CONFIGURE_ENV`." #. type: Block title #: documentation/content/en/books/porters-handbook/special/_index.adoc:386 #, no-wrap msgid "Variables for Ports That Use `configure`" msgstr "Переменные для портов, использующих `configure`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:390 #: documentation/content/en/books/porters-handbook/special/_index.adoc:418 #: documentation/content/en/books/porters-handbook/special/_index.adoc:446 #: documentation/content/en/books/porters-handbook/special/_index.adoc:529 #: documentation/content/en/books/porters-handbook/special/_index.adoc:812 #: documentation/content/en/books/porters-handbook/special/_index.adoc:2449 #: documentation/content/en/books/porters-handbook/special/_index.adoc:2469 #: documentation/content/en/books/porters-handbook/special/_index.adoc:3173 #: documentation/content/en/books/porters-handbook/special/_index.adoc:3205 #: documentation/content/en/books/porters-handbook/special/_index.adoc:3793 #, no-wrap msgid "Variable" msgstr "Переменная" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:392 #: documentation/content/en/books/porters-handbook/special/_index.adoc:420 #: documentation/content/en/books/porters-handbook/special/_index.adoc:448 #: documentation/content/en/books/porters-handbook/special/_index.adoc:1325 #: documentation/content/en/books/porters-handbook/special/_index.adoc:3175 #, no-wrap msgid "Means" msgstr "Значение" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:393 #, no-wrap msgid "`GNU_CONFIGURE`" msgstr "`GNU_CONFIGURE`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:395 #, no-wrap msgid "The port uses `configure` script to prepare build." msgstr "Порт использует сценарий `configure` для подготовки построения." #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:396 #, no-wrap msgid "`HAS_CONFIGURE`" msgstr "`HAS_CONFIGURE`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:398 #, no-wrap msgid "Same as `GNU_CONFIGURE`, except default configure target is not added to `CONFIGURE_ARGS`." msgstr "То же, что и `GNU_CONFIGURE`, кроме того, что цель configure по умолчанию не добавляется в `CONFIGURE_ARGS`." #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:399 #, no-wrap msgid "`CONFIGURE_ARGS`" msgstr "`CONFIGURE_ARGS`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:401 #, no-wrap msgid "Additional arguments passed to `configure` script." msgstr "Дополнительные параметры, передаваемые сценарию `configure`." #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:402 #: documentation/content/en/books/porters-handbook/special/_index.adoc:438 #, no-wrap msgid "`CONFIGURE_ENV`" msgstr "`CONFIGURE_ENV`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:404 #, no-wrap msgid "Additional environment variables to be set for `configure` script run." msgstr "Дополнительные переменные окружения, задаваемые для запуска сценария `configure`." #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:405 #, no-wrap msgid "`CONFIGURE_TARGET`" msgstr "`CONFIGURE_TARGET`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:406 #, no-wrap msgid "Override default configure target. Default value is `${MACHINE_ARCH}-portbld-freebsd${OSREL}`." msgstr "Переопределить цель configure по умолчанию. Значением по умолчанию является `${MACHINE_ARCH}-portbld-freebsd${OSREL}`." #. type: Title === #: documentation/content/en/books/porters-handbook/special/_index.adoc:409 #, no-wrap msgid "Using `cmake`" msgstr "Использование `cmake`" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:412 msgid "For ports that use CMake, define `USES= cmake`." msgstr "Если порт использует CMake, определите `USES= cmake`." #. type: Block title #: documentation/content/en/books/porters-handbook/special/_index.adoc:414 #, no-wrap msgid "Variables for Ports That Use `cmake`" msgstr "Переменные для портов, использующих `cmake`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:421 #, no-wrap msgid "`CMAKE_ARGS`" msgstr "`CMAKE_ARGS`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:423 #, no-wrap msgid "Port specific CMake flags to be passed to the `cmake` binary." msgstr "Специфичные для порта флаги CMake, передаваемые в бинарный файл `cmake`." #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:424 #, no-wrap msgid "`CMAKE_ON`" msgstr "`CMAKE_ON`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:427 #, no-wrap msgid "" "For each entry in `CMAKE_ON`, an enabled boolean value is added to\n" "`CMAKE_ARGS`. See crossref:special[using-cmake-example2,`CMAKE_ON` and `CMAKE_OFF`]." msgstr "" "Для каждой записи в `CMAKE_ON` добавляется булево значение \"включено\" в\n" "`CMAKE_ARGS`. См. crossref:special[using-cmake-example2,`CMAKE_ON` и `CMAKE_OFF`]." #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:428 #, no-wrap msgid "`CMAKE_OFF`" msgstr "`CMAKE_OFF`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:431 #, no-wrap msgid "" "For each entry in `CMAKE_OFF`, a disabled boolean value is added to\n" "`CMAKE_ARGS`. See crossref:special[using-cmake-example2,`CMAKE_ON` and `CMAKE_OFF`]." msgstr "" "Для каждой записи в `CMAKE_OFF` в `CMAKE_ARGS` добавляется отключенное булево\n" "значение. См. crossref:special[using-cmake-example2,`CMAKE_ON` и `CMAKE_OFF`]." #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:432 #, no-wrap msgid "`CMAKE_BUILD_TYPE`" msgstr "`CMAKE_BUILD_TYPE`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:434 #, no-wrap msgid "Type of build (CMake predefined build profiles). Default is `Release`, or `Debug` if `WITH_DEBUG` is set." msgstr "Тип сборки (предопределённые профили сборки CMake). По умолчанию `Release`, или `Debug`, если установлен `WITH_DEBUG`." #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:435 #, no-wrap msgid "`CMAKE_SOURCE_PATH`" msgstr "`CMAKE_SOURCE_PATH`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:437 #, no-wrap msgid "Path to the source directory. Default is `${WRKSRC}`." msgstr "Путь к исходному каталогу. По умолчанию `${WRKSRC}`." #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:439 #, no-wrap msgid "Additional environment variables to be set for the `cmake` binary." msgstr "Дополнительные переменные окружения, которые должны быть установлены для бинарного файла `cmake`." #. type: Block title #: documentation/content/en/books/porters-handbook/special/_index.adoc:442 #, no-wrap msgid "Variables the Users Can Define for `cmake` Builds" msgstr "Переменные, которые пользователи могут определить для сборок `cmake`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:449 #, no-wrap msgid "`CMAKE_NOCOLOR`" msgstr "`CMAKE_NOCOLOR`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:450 #, no-wrap msgid "Disables color build output. Default not set, unless `BATCH` or `PACKAGE_BUILDING` are set." msgstr "Запрещает цветной вывод сообщений при построении. Значение по умолчанию не задано, если не заданы `BATCH` или `PACKAGE_BUILDING`." #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:457 msgid "" "CMake supports these build profiles: `Debug`, `Release`, `RelWithDebInfo` " "and `MinSizeRel`. `Debug` and `Release` profiles respect system `\\*FLAGS`, " "`RelWithDebInfo` and `MinSizeRel` will set `CFLAGS` to `-O2 -g` and `-Os -" "DNDEBUG` correspondingly. The lower-cased value of `CMAKE_BUILD_TYPE` is " "exported to `PLIST_SUB` and must be used if the port installs [.filename]#*." "cmake# depending on the build type (see package:devel/kf5-kcrash[] for an " "example). Please note that some projects may define their own build " "profiles and/or force particular build type by setting `CMAKE_BUILD_TYPE` in " "[.filename]#CMakeLists.txt#. To make a port for such a project respect " "`CFLAGS` and `WITH_DEBUG`, the `CMAKE_BUILD_TYPE` definitions must be " "removed from those files." msgstr "" "CMake поддерживает следующие профили построения: `Debug`, `Release`, " "`RelWithDebInfo` и `MinSizeRel`. Профили `Debug` и `Release` учитывают " "системные флаги `\\*FLAGS`; `RelWithDebInfo` и `MinSizeRel` соответственно " "определяют `CFLAGS` со значением `-O2 -g` и `-Os -DNDEBUG`. Значение " "`CMAKE_BUILD_TYPE` экспортируется в нижнем регистре в `PLIST_SUB` и должно " "использоваться, если порт устанавливает файлы `*.cmake` в зависимости от " "типа построения (для примера посмотрите на package:deskutils/strigi[]). " "Следует учитывать, что некоторые проекты могут определять собственные " "профили построения и/или форсировать конкретный тип построения через " "установку `CMAKE_BUILD_TYPE` в файлах [.filename]#CMakeLists.txt#. Для того " "чтобы порт для такого проекта учитывал `CFLAGS` и `WITH_DEBUG`, из этих " "файлов должны быть удалены значения `CMAKE_BUILD_TYPE`." #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:462 msgid "" "Most CMake-based projects support an out-of-source method of building. The " "out-of-source build for a port is the default setting. An in-source build " "can be requested by using the `:insource` suffix. With out-of-source " "builds, `CONFIGURE_WRKSRC`, `BUILD_WRKSRC` and `INSTALL_WRKSRC` will be set " "to `${WRKDIR}/.build` and this directory will be used to keep all files " "generated during configuration and build stages, leaving the source " "directory intact." msgstr "" "Большинство проектов, основанных на CMake, поддерживают метод внешнего (out-" "of-source) построения. Для порта внешнее построение можно запросить с " "использованием суффикса `:outsource`. В этом случае `CONFIGURE_WRKSRC`, " "`BUILD_WRKSRC` и `INSTALL_WRKSRC` будут иметь значение `${WRKDIR}/.build` " "для каталога, содержащего файлы, получаемые на этапах конфигурации и " "построения; при этом каталог с исходным кодом будет оставаться без изменений." #. type: Block title #: documentation/content/en/books/porters-handbook/special/_index.adoc:464 #, no-wrap msgid "`USES= cmake` Example" msgstr "Пример для `USES= cmake`" #. type: delimited block = 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:469 msgid "" "This snippet demonstrates the use of CMake for a port. `CMAKE_SOURCE_PATH` " "is not usually required, but can be set when the sources are not located in " "the top directory, or if only a subset of the project is intended to be " "built by the port." msgstr "" "Следующий отрывок демонстрирует использование CMake для порта. " "`CMAKE_SOURCE_PATH` обычно не требуется, но может быть установлен, когда " "исходный код не находится в верхнем каталоге или если порт используется для " "построения части проекта." #. type: delimited block . 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:474 #, no-wrap msgid "" "USES=\t\t\tcmake\n" "CMAKE_SOURCE_PATH=\t${WRKSRC}/subproject\n" msgstr "" "USES=\t\t\tcmake\n" "CMAKE_SOURCE_PATH=\t${WRKSRC}/subproject\n" #. type: Block title #: documentation/content/en/books/porters-handbook/special/_index.adoc:479 #, no-wrap msgid "`CMAKE_ON` and `CMAKE_OFF`" msgstr "`CMAKE_ON` и `CMAKE_OFF`" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:483 msgid "" "When adding boolean values to `CMAKE_ARGS`, it is easier to use the " "`CMAKE_ON` and `CMAKE_OFF` variables instead. This:" msgstr "" "При добавлении логических значений в `CMAKE_ARGS` проще использовать " "переменные `CMAKE_ON` и `CMAKE_OFF` вместо этого. Это:" #. type: delimited block . 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:488 #, no-wrap msgid "" "CMAKE_ON=\tVAR1 VAR2\n" "CMAKE_OFF=\tVAR3\n" msgstr "" "CMAKE_ON=\tVAR1 VAR2\n" "CMAKE_OFF=\tVAR3\n" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:491 msgid "Is equivalent to:" msgstr "Эквивалентно:" #. type: delimited block . 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:495 #, no-wrap msgid "CMAKE_ARGS=\t-DVAR1:BOOL=TRUE -DVAR2:BOOL=TRUE -DVAR3:BOOL=FALSE\n" msgstr "CMAKE_ARGS=\t-DVAR1:BOOL=TRUE -DVAR2:BOOL=TRUE -DVAR3:BOOL=FALSE\n" #. type: delimited block = 6 #: documentation/content/en/books/porters-handbook/special/_index.adoc:501 msgid "" "This is only for the default values off `CMAKE_ARGS`. The helpers described " "in crossref:makefiles[options-cmake_bool,`OPT_CMAKE_BOOL` and " "`OPT_CMAKE_BOOL_OFF`] use the same semantics, but for optional values." msgstr "" "Это относится только к значениям по умолчанию в `CMAKE_ARGS`. " "Вспомогательные функции, описанные в crossref:makefiles[options-cmake_bool," "`OPT_CMAKE_BOOL` и `OPT_CMAKE_BOOL_OFF`], используют ту же семантику, но для " "опциональных значений." #. type: Title === #: documentation/content/en/books/porters-handbook/special/_index.adoc:506 #, no-wrap msgid "Using `scons`" msgstr "Использование `scons`" #. type: delimited block = 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:509 msgid "If the port uses SCons, define `USES=scons`." msgstr "Если порт использует SCons, определите `USES=scons`." #. type: delimited block = 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:511 msgid "" "To make third party [.filename]#SConstruct# respect everything that is " "passed to SCons in the environment (that is, most importantly, `CC/CXX/" "CFLAGS/CXXFLAGS`), patch [.filename]#SConstruct# so build `Environment` is " "constructed like this:" msgstr "" "Чтобы сторонний [.filename]#SConstruct# учитывал все, что передаётся в SCons " "через окружение (то есть, что наиболее важно, `CC/CXX/CFLAGS/CXXFLAGS`), " "исправьте [.filename]#SConstruct#, чтобы сборка `Environment` создавалась " "следующим образом:" #. type: delimited block . 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:515 #, no-wrap msgid "env = Environment(**ARGUMENTS)\n" msgstr "env = Environment(**ARGUMENTS)\n" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:518 msgid "It may be then modified with `env.Append` and `env.Replace`." msgstr "Он может быть изменён с помощью `env.Append` и `env.Replace`." #. type: Title === #: documentation/content/en/books/porters-handbook/special/_index.adoc:520 #, no-wrap msgid "Building Rust Applications with `cargo`" msgstr "Сборка приложений на Rust с помощью `cargo`" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:523 msgid "For ports that use Cargo, define `USES=cargo`." msgstr "Для портов, использующих Cargo, определите `USES=cargo`." #. type: Block title #: documentation/content/en/books/porters-handbook/special/_index.adoc:525 #, no-wrap msgid "Variables the Users Can Define for `cargo` Builds" msgstr "Переменные, которые пользователи могут определить для сборок `cargo`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:530 #, no-wrap msgid "Default" msgstr "По умолчанию" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:532 #: documentation/content/en/books/porters-handbook/special/_index.adoc:814 #: documentation/content/en/books/porters-handbook/special/_index.adoc:1733 #: documentation/content/en/books/porters-handbook/special/_index.adoc:1901 #: documentation/content/en/books/porters-handbook/special/_index.adoc:1919 #: documentation/content/en/books/porters-handbook/special/_index.adoc:2087 #: documentation/content/en/books/porters-handbook/special/_index.adoc:2153 #: documentation/content/en/books/porters-handbook/special/_index.adoc:2397 #: documentation/content/en/books/porters-handbook/special/_index.adoc:2414 #: documentation/content/en/books/porters-handbook/special/_index.adoc:2451 #: documentation/content/en/books/porters-handbook/special/_index.adoc:2471 #: documentation/content/en/books/porters-handbook/special/_index.adoc:2547 #: documentation/content/en/books/porters-handbook/special/_index.adoc:3127 #: documentation/content/en/books/porters-handbook/special/_index.adoc:3794 #: documentation/content/en/books/porters-handbook/special/_index.adoc:3828 #: documentation/content/en/books/porters-handbook/special/_index.adoc:3871 #: documentation/content/en/books/porters-handbook/special/_index.adoc:3897 #: documentation/content/en/books/porters-handbook/special/_index.adoc:4001 #: documentation/content/en/books/porters-handbook/special/_index.adoc:4171 #: documentation/content/en/books/porters-handbook/special/_index.adoc:4223 #: documentation/content/en/books/porters-handbook/special/_index.adoc:4315 #: documentation/content/en/books/porters-handbook/special/_index.adoc:4407 #: documentation/content/en/books/porters-handbook/special/_index.adoc:4469 #: documentation/content/en/books/porters-handbook/special/_index.adoc:4729 #, no-wrap msgid "Description" msgstr "Описание" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:533 #, no-wrap msgid "`CARGO_CRATES`" msgstr "`CARGO_CRATES`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:539 #, no-wrap msgid "" "List of crates the port depends on. Each entry needs to have a format like `cratename-semver` for example, `libc-0.2.40`. Port maintainers can generate this list from [.filename]#Cargo.lock# using `make cargo-crates`. Manually bumping crate versions is possible but be mindful of transitive dependencies.\n" "If the list generated by `make cargo-crates` is big, it might be convenient to place it inside a `Makefile.crates` file in the top-level port directory.\n" "If present, the ports framework sources that file automatically.\n" "This help keep the main port Makefile within a manageable size." msgstr "" "Список ящиков (crates), от которых зависит порт. Каждая запись должна быть в формате `имя_ящика-семвер`, например, `libc-0.2.40`. Поддерживающие порт могут сгенерировать этот список из файла [.filename]#Cargo.lock# с помощью команды `make cargo-crates`. Вручную обновлять версии ящиков возможно, но следует учитывать транзитивные зависимости.\n" "Если список, сгенерированный `make cargo-crates`, слишком велик, его можно разместить в файле `Makefile.crates` в корневом каталоге порта.\n" "Если такой файл присутствует, фреймворк портов автоматически загружает его.\n" "Это помогает сохранять основной Makefile порта в удобном для работы размере." #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:540 #, no-wrap msgid "`CARGO_FEATURES`" msgstr "`CARGO_FEATURES`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:543 #, no-wrap msgid "List of application features to build (space separated list). To deactivate all default features add the special token `--no-default-features` to `CARGO_FEATURES`. Manually passing it to `CARGO_BUILD_ARGS`, `CARGO_INSTALL_ARGS`, and `CARGO_TEST_ARGS` is not needed." msgstr "Список функций приложения для сборки (список через пробел). Чтобы отключить все функции по умолчанию, добавьте специальный токен `--no-default-features` в `CARGO_FEATURES`. Вручную передавать его в `CARGO_BUILD_ARGS`, `CARGO_INSTALL_ARGS` и `CARGO_TEST_ARGS` не требуется." #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:544 #, no-wrap msgid "`CARGO_CARGOTOML`" msgstr "`CARGO_CARGOTOML`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:545 #, no-wrap msgid "`${WRKSRC}/Cargo.toml`" msgstr "`${WRKSRC}/Cargo.toml`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:547 #, no-wrap msgid "The path to the [.filename]#Cargo.toml# to use." msgstr "Путь к файлу [.filename]#Cargo.toml#, который следует использовать." #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:548 #, no-wrap msgid "`CARGO_CARGOLOCK`" msgstr "`CARGO_CARGOLOCK`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:549 #, no-wrap msgid "`${WRKSRC}/Cargo.lock`" msgstr "`${WRKSRC}/Cargo.lock`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:551 #, no-wrap msgid "The path to the [.filename]#Cargo.lock# to use for `make cargo-crates`. It is possible to specify more than one lock file when necessary." msgstr "Путь к файлу [.filename]#Cargo.lock#, используемому для `make cargo-crates`. Можно указать более одного файла блокировки, если это необходимо." #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:552 #, no-wrap msgid "`CARGO_ENV`" msgstr "`CARGO_ENV`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:555 #, no-wrap msgid "A list of environment variables to pass to Cargo similar to `MAKE_ENV`." msgstr "Список переменных окружения, передаваемых в Cargo, аналогично `MAKE_ENV`." #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:556 #, no-wrap msgid "`RUSTFLAGS`" msgstr "`RUSTFLAGS`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:559 #, no-wrap msgid "Flags to pass to the Rust compiler." msgstr "Флаги для передачи компилятору Rust." #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:560 #, no-wrap msgid "`CARGO_CONFIGURE`" msgstr "`CARGO_CONFIGURE`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:561 #: documentation/content/en/books/porters-handbook/special/_index.adoc:569 #: documentation/content/en/books/porters-handbook/special/_index.adoc:577 #: documentation/content/en/books/porters-handbook/special/_index.adoc:585 #: documentation/content/en/books/porters-handbook/special/_index.adoc:597 #, no-wrap msgid "`yes`" msgstr "`yes`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:563 #, no-wrap msgid "Use the default `do-configure`." msgstr "Используйте стандартный `do-configure`." #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:564 #, no-wrap msgid "`CARGO_UPDATE_ARGS`" msgstr "`CARGO_UPDATE_ARGS`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:567 #, no-wrap msgid "Extra arguments to pass to Cargo during the configure phase. Valid arguments can be looked up with `cargo update --help`." msgstr "Дополнительные аргументы для передачи Cargo во время фазы настройки. Допустимые аргументы можно посмотреть с помощью `cargo update --help`." #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:568 #, no-wrap msgid "`CARGO_BUILDDEP`" msgstr "`CARGO_BUILDDEP`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:571 #, no-wrap msgid "Add a build dependency on package:lang/rust[]." msgstr "Добавить зависимость сборки на package:lang/rust[]." #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:572 #, no-wrap msgid "`CARGO_CARGO_BIN`" msgstr "`CARGO_CARGO_BIN`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:573 #, no-wrap msgid "`${LOCALBASE}/bin/cargo`" msgstr "`${LOCALBASE}/bin/cargo`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:575 #, no-wrap msgid "Location of the `cargo` binary." msgstr "Расположение бинарного файла `cargo`." #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:576 #, no-wrap msgid "`CARGO_BUILD`" msgstr "`CARGO_BUILD`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:579 #, no-wrap msgid "Use the default `do-build`." msgstr "Используйте значение по умолчанию `do-build`." #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:580 #, no-wrap msgid "`CARGO_BUILD_ARGS`" msgstr "`CARGO_BUILD_ARGS`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:583 #, no-wrap msgid "Extra arguments to pass to Cargo during the build phase. Valid arguments can be looked up with `cargo build --help`." msgstr "Дополнительные аргументы для передачи Cargo во время фазы сборки. Допустимые аргументы можно посмотреть с помощью `cargo build --help`." #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:584 #, no-wrap msgid "`CARGO_INSTALL`" msgstr "`CARGO_INSTALL`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:587 #, no-wrap msgid "Use the default `do-install`." msgstr "Используйте настройку `do-install` по умолчанию." #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:588 #, no-wrap msgid "`CARGO_INSTALL_ARGS`" msgstr "`CARGO_INSTALL_ARGS`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:591 #, no-wrap msgid "Extra arguments to pass to Cargo during the install phase. Valid arguments can be looked up with `cargo install --help`." msgstr "Дополнительные аргументы для передачи Cargo во время фазы установки. Допустимые аргументы можно посмотреть с помощью `cargo install --help`." #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:592 #, no-wrap msgid "`CARGO_INSTALL_PATH`" msgstr "`CARGO_INSTALL_PATH`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:593 #, no-wrap msgid "`.`" msgstr "`.`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:595 #, no-wrap msgid "Path to the crate to install. This is passed to `cargo install` via its `--path` argument. When multiple paths are specified `cargo install` is run multiple times." msgstr "Путь к пакету для установки. Этот аргумент передаётся в `cargo install` через параметр `--path`. Если указано несколько путей, `cargo install` запускается несколько раз." #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:596 #, no-wrap msgid "`CARGO_TEST`" msgstr "`CARGO_TEST`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:599 #, no-wrap msgid "Use the default `do-test`." msgstr "Используйте значение по умолчанию `do-test`." #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:600 #, no-wrap msgid "`CARGO_TEST_ARGS`" msgstr "`CARGO_TEST_ARGS`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:603 #, no-wrap msgid "Extra arguments to pass to Cargo during the test phase. Valid arguments can be looked up with `cargo test --help`." msgstr "Дополнительные аргументы для передачи Cargo во время тестовой фазы. Допустимые аргументы можно посмотреть с помощью `cargo test --help`." #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:604 #, no-wrap msgid "`CARGO_TARGET_DIR`" msgstr "`CARGO_TARGET_DIR`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:605 #, no-wrap msgid "`${WRKDIR}/target`" msgstr "`${WRKDIR}/target`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:607 #, no-wrap msgid "Location of the cargo output directory." msgstr "Расположение выходного каталога cargo." #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:608 #, no-wrap msgid "`CARGO_DIST_SUBDIR`" msgstr "`CARGO_DIST_SUBDIR`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:609 #, no-wrap msgid "[.filename]#rust/crates#" msgstr "[.filename]#rust/crates#" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:611 #, no-wrap msgid "Directory relative to `DISTDIR` where the crate distribution files will be stored." msgstr "Каталог относительно `DISTDIR`, в котором будут храниться файлы дистрибутивов пакетов (crates)." #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:612 #, no-wrap msgid "`CARGO_VENDOR_DIR`" msgstr "`CARGO_VENDOR_DIR`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:613 #, no-wrap msgid "`${WRKSRC}/cargo-crates`" msgstr "`${WRKSRC}/cargo-crates`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:615 #, no-wrap msgid "Location of the vendor directory where all crates will be extracted to. Try to keep this under `PATCH_WRKSRC`, so that patches can be applied easily." msgstr "Расположение каталога сторонних поставщиков ПО, в который будут извлечены все крейты. Старайтесь держать его в пределах `PATCH_WRKSRC`, чтобы упростить применение патчей." #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:616 #, no-wrap msgid "`CARGO_USE_GITHUB`" msgstr "`CARGO_USE_GITHUB`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:617 #: documentation/content/en/books/porters-handbook/special/_index.adoc:621 #, no-wrap msgid "`no`" msgstr "`no`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:619 #, no-wrap msgid "Enable fetching of crates locked to specific Git commits on GitHub via `GH_TUPLE`. This will try to patch all [.filename]#Cargo.toml# under `WRKDIR` to point to the offline sources instead of fetching them from a Git repository during the build." msgstr "Включить загрузку крейтов, привязанных к определённым коммитам Git на GitHub, с помощью `GH_TUPLE`. Это попытается исправить все файлы [.filename]#Cargo.toml# в `WRKDIR`, чтобы они ссылались на автономные источники вместо загрузки из репозитория Git во время сборки." #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:620 #, no-wrap msgid "`CARGO_USE_GITLAB`" msgstr "`CARGO_USE_GITLAB`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:622 #, no-wrap msgid "Same as `CARGO_USE_GITHUB` but for GitLab instances and `GL_TUPLE`." msgstr "То же, что и `CARGO_USE_GITHUB`, но для экземпляров GitLab и `GL_TUPLE`." #. type: Block title #: documentation/content/en/books/porters-handbook/special/_index.adoc:625 #, no-wrap msgid "Creating a Port for a Simple Rust Application" msgstr "Создание порта для простого приложения на Rust" #. type: delimited block = 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:630 msgid "" "Creating a Cargo based port is a three stage process. First we need to " "provide a ports template that fetches the application distribution file:" msgstr "" "Создание порта на основе Cargo — это процесс из трёх этапов. Сначала " "необходимо предоставить шаблон портов, который загружает дистрибутивный файл " "приложения:" #. type: delimited block . 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:637 #: documentation/content/en/books/porters-handbook/special/_index.adoc:682 #, no-wrap msgid "" "PORTNAME=\ttokei\n" "DISTVERSIONPREFIX=\tv\n" "DISTVERSION=\t7.0.2\n" "CATEGORIES=\tdevel\n" msgstr "" "PORTNAME=\ttokei\n" "DISTVERSIONPREFIX=\tv\n" "DISTVERSION=\t7.0.2\n" "CATEGORIES=\tdevel\n" #. type: delimited block . 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:641 #: documentation/content/en/books/porters-handbook/special/_index.adoc:686 #, no-wrap msgid "" "MAINTAINER=\ttobik@FreeBSD.org\n" "COMMENT=\tDisplay statistics about your code\n" "WWW=\t\thttps://github.com/XAMPPRocky/tokei/\n" msgstr "" "MAINTAINER=\ttobik@FreeBSD.org\n" "COMMENT=\tDisplay statistics about your code\n" "WWW=\t\thttps://github.com/XAMPPRocky/tokei/\n" #. type: delimited block . 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:645 #: documentation/content/en/books/porters-handbook/special/_index.adoc:690 #, no-wrap msgid "" "USES=\t\tcargo\n" "USE_GITHUB=\tyes\n" "GH_ACCOUNT=\tAaronepower\n" msgstr "" "USES=\t\tcargo\n" "USE_GITHUB=\tyes\n" "GH_ACCOUNT=\tAaronepower\n" #. type: delimited block . 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:647 #: documentation/content/en/books/porters-handbook/special/_index.adoc:700 #: documentation/content/en/books/porters-handbook/special/_index.adoc:867 #: documentation/content/en/books/porters-handbook/special/_index.adoc:890 #: documentation/content/en/books/porters-handbook/special/_index.adoc:948 #: documentation/content/en/books/porters-handbook/special/_index.adoc:1019 #: documentation/content/en/books/porters-handbook/special/_index.adoc:1106 #: documentation/content/en/books/porters-handbook/special/_index.adoc:1122 #: documentation/content/en/books/porters-handbook/special/_index.adoc:1136 #: documentation/content/en/books/porters-handbook/special/_index.adoc:1253 #: documentation/content/en/books/porters-handbook/special/_index.adoc:1274 #: documentation/content/en/books/porters-handbook/special/_index.adoc:1647 #: documentation/content/en/books/porters-handbook/special/_index.adoc:3475 #: documentation/content/en/books/porters-handbook/special/_index.adoc:3535 #: documentation/content/en/books/porters-handbook/special/_index.adoc:3654 #: documentation/content/en/books/porters-handbook/special/_index.adoc:4255 #: documentation/content/en/books/porters-handbook/special/_index.adoc:4279 #: documentation/content/en/books/porters-handbook/special/_index.adoc:4517 #, no-wrap msgid ".include \n" msgstr ".include \n" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:650 #: documentation/content/en/books/porters-handbook/special/_index.adoc:893 msgid "Generate an initial [.filename]#distinfo#:" msgstr "Сгенерировать первоначальный [.filename]#distinfo#:" #. type: delimited block . 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:658 #, no-wrap msgid "" "% make makesum\n" "=> Aaronepower-tokei-v7.0.2_GH0.tar.gz doesn't seem to exist in /usr/ports/distfiles/.\n" "=> Attempting to fetch https://codeload.github.com/Aaronepower/tokei/tar.gz/v7.0.2?dummy=/Aaronepower-tokei-v7.0.2_GH0.tar.gz\n" "fetch: https://codeload.github.com/Aaronepower/tokei/tar.gz/v7.0.2?dummy=/Aaronepower-tokei-v7.0.2_GH0.tar.gz: size of remote file is not known\n" "Aaronepower-tokei-v7.0.2_GH0.tar.gz 45 kB 239 kBps 00m00s\n" msgstr "" "% make makesum\n" "=> Aaronepower-tokei-v7.0.2_GH0.tar.gz doesn't seem to exist in /usr/ports/distfiles/.\n" "=> Attempting to fetch https://codeload.github.com/Aaronepower/tokei/tar.gz/v7.0.2?dummy=/Aaronepower-tokei-v7.0.2_GH0.tar.gz\n" "fetch: https://codeload.github.com/Aaronepower/tokei/tar.gz/v7.0.2?dummy=/Aaronepower-tokei-v7.0.2_GH0.tar.gz: size of remote file is not known\n" "Aaronepower-tokei-v7.0.2_GH0.tar.gz 45 kB 239 kBps 00m00s\n" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:661 msgid "" "Now the distribution file is ready to use and we can go ahead and extract " "crate dependencies from the bundled [.filename]#Cargo.lock#:" msgstr "" "Теперь файл дистрибутива готов к использованию, и мы можем продолжить, " "извлекая зависимости пакета из встроенного файла [.filename]#Cargo.lock#:" #. type: delimited block . 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:672 #, no-wrap msgid "" "% make cargo-crates\n" "CARGO_CRATES= aho-corasick-0.6.4 \\\n" " ansi_term-0.11.0 \\\n" " arrayvec-0.4.7 \\\n" " atty-0.2.9 \\\n" " bitflags-1.0.1 \\\n" " byteorder-1.2.2 \\\n" " [...]\n" msgstr "" "% make cargo-crates\n" "CARGO_CRATES= aho-corasick-0.6.4 \\\n" " ansi_term-0.11.0 \\\n" " arrayvec-0.4.7 \\\n" " atty-0.2.9 \\\n" " bitflags-1.0.1 \\\n" " byteorder-1.2.2 \\\n" " [...]\n" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:675 #: documentation/content/en/books/porters-handbook/special/_index.adoc:923 msgid "" "The output of this command needs to be pasted directly into the Makefile:" msgstr "Вывод этой команды необходимо вставить напрямую в Makefile:" #. type: delimited block . 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:698 #, no-wrap msgid "" "CARGO_CRATES= aho-corasick-0.6.4 \\\n" " ansi_term-0.11.0 \\\n" " arrayvec-0.4.7 \\\n" " atty-0.2.9 \\\n" " bitflags-1.0.1 \\\n" " byteorder-1.2.2 \\\n" " [...]\n" msgstr "" "CARGO_CRATES= aho-corasick-0.6.4 \\\n" " ansi_term-0.11.0 \\\n" " arrayvec-0.4.7 \\\n" " atty-0.2.9 \\\n" " bitflags-1.0.1 \\\n" " byteorder-1.2.2 \\\n" " [...]\n" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:703 msgid "" "[.filename]#distinfo# needs to be regenerated to contain all the crate " "distribution files:" msgstr "" "[.filename]#distinfo# необходимо перегенерировать, чтобы включить все " "дистрибутивные файлы крейтов:" #. type: delimited block . 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:721 #, no-wrap msgid "" "% make makesum\n" "=> rust/crates/aho-corasick-0.6.4.tar.gz doesn't seem to exist in /usr/ports/distfiles/.\n" "=> Attempting to fetch https://crates.io/api/v1/crates/aho-corasick/0.6.4/download?dummy=/rust/crates/aho-corasick-0.6.4.tar.gz\n" "rust/crates/aho-corasick-0.6.4.tar.gz 100% of 24 kB 6139 kBps 00m00s\n" "=> rust/crates/ansi_term-0.11.0.tar.gz doesn't seem to exist in /usr/ports/distfiles/.\n" "=> Attempting to fetch https://crates.io/api/v1/crates/ansi_term/0.11.0/download?dummy=/rust/crates/ansi_term-0.11.0.tar.gz\n" "rust/crates/ansi_term-0.11.0.tar.gz 100% of 16 kB 21 MBps 00m00s\n" "=> rust/crates/arrayvec-0.4.7.tar.gz doesn't seem to exist in /usr/ports/distfiles/.\n" "=> Attempting to fetch https://crates.io/api/v1/crates/arrayvec/0.4.7/download?dummy=/rust/crates/arrayvec-0.4.7.tar.gz\n" "rust/crates/arrayvec-0.4.7.tar.gz 100% of 22 kB 3237 kBps 00m00s\n" "=> rust/crates/atty-0.2.9.tar.gz doesn't seem to exist in /usr/ports/distfiles/.\n" "=> Attempting to fetch https://crates.io/api/v1/crates/atty/0.2.9/download?dummy=/rust/crates/atty-0.2.9.tar.gz\n" "rust/crates/atty-0.2.9.tar.gz 100% of 5898 B 81 MBps 00m00s\n" "=> rust/crates/bitflags-1.0.1.tar.gz doesn't seem to exist in /usr/ports/distfiles/.\n" "[...]\n" msgstr "" "% make makesum\n" "=> rust/crates/aho-corasick-0.6.4.tar.gz doesn't seem to exist in /usr/ports/distfiles/.\n" "=> Attempting to fetch https://crates.io/api/v1/crates/aho-corasick/0.6.4/download?dummy=/rust/crates/aho-corasick-0.6.4.tar.gz\n" "rust/crates/aho-corasick-0.6.4.tar.gz 100% of 24 kB 6139 kBps 00m00s\n" "=> rust/crates/ansi_term-0.11.0.tar.gz doesn't seem to exist in /usr/ports/distfiles/.\n" "=> Attempting to fetch https://crates.io/api/v1/crates/ansi_term/0.11.0/download?dummy=/rust/crates/ansi_term-0.11.0.tar.gz\n" "rust/crates/ansi_term-0.11.0.tar.gz 100% of 16 kB 21 MBps 00m00s\n" "=> rust/crates/arrayvec-0.4.7.tar.gz doesn't seem to exist in /usr/ports/distfiles/.\n" "=> Attempting to fetch https://crates.io/api/v1/crates/arrayvec/0.4.7/download?dummy=/rust/crates/arrayvec-0.4.7.tar.gz\n" "rust/crates/arrayvec-0.4.7.tar.gz 100% of 22 kB 3237 kBps 00m00s\n" "=> rust/crates/atty-0.2.9.tar.gz doesn't seem to exist in /usr/ports/distfiles/.\n" "=> Attempting to fetch https://crates.io/api/v1/crates/atty/0.2.9/download?dummy=/rust/crates/atty-0.2.9.tar.gz\n" "rust/crates/atty-0.2.9.tar.gz 100% of 5898 B 81 MBps 00m00s\n" "=> rust/crates/bitflags-1.0.1.tar.gz doesn't seem to exist in /usr/ports/distfiles/.\n" "[...]\n" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:724 #: documentation/content/en/books/porters-handbook/special/_index.adoc:967 #: documentation/content/en/books/porters-handbook/special/_index.adoc:1079 msgid "" "The port is now ready for a test build and further adjustments like creating " "a plist, writing a description, adding license information, options, etc. as " "normal." msgstr "" "Порт теперь готов к тестовой сборке и дальнейшим настройкам, таким как " "создание plist, написание описания, добавление информации о лицензии, опций " "и т.д., как обычно." #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:726 #: documentation/content/en/books/porters-handbook/special/_index.adoc:969 #: documentation/content/en/books/porters-handbook/special/_index.adoc:1081 msgid "" "If you are not testing your port in a clean environment like with poudriere, " "remember to run `make clean` before any testing." msgstr "" "Если вы не тестируете свой порт в чистой среде, например, с использованием " "poudriere, не забудьте выполнить `make clean` перед любым тестированием." #. type: Block title #: documentation/content/en/books/porters-handbook/special/_index.adoc:729 #, no-wrap msgid "Enabling Additional Application Features" msgstr "Включение дополнительных возможностей приложений" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:734 msgid "" "Some applications define additional features in their [.filename]#Cargo." "toml#. They can be compiled in by setting `CARGO_FEATURES` in the port." msgstr "" "Некоторые приложения определяют дополнительные возможности в своём [." "filename]#Cargo.toml#. Их можно включить при компиляции, установив " "`CARGO_FEATURES` в порте." #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:736 msgid "Here we enable Tokei's `json` and `yaml` features:" msgstr "Здесь мы включаем функции `json` и `yaml` в Tokei:" #. type: delimited block . 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:740 #, no-wrap msgid "CARGO_FEATURES=\tjson yaml\n" msgstr "CARGO_FEATURES=\tjson yaml\n" #. type: Block title #: documentation/content/en/books/porters-handbook/special/_index.adoc:745 #, no-wrap msgid "Encoding Application Features As Port Options" msgstr "Кодирование характеристик приложений как параметров порта" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:749 msgid "" "An example `[features]` section in [.filename]#Cargo.toml# could look like " "this:" msgstr "" "Пример раздела `[features]` в [.filename]#Cargo.toml# может выглядеть так:" #. type: delimited block . 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:756 #, no-wrap msgid "" "[features]\n" "pulseaudio_backend = [\"librespot-playback/pulseaudio-backend\"]\n" "portaudio_backend = [\"librespot-playback/portaudio-backend\"]\n" "default = [\"pulseaudio_backend\"]\n" msgstr "" "[features]\n" "pulseaudio_backend = [\"librespot-playback/pulseaudio-backend\"]\n" "portaudio_backend = [\"librespot-playback/portaudio-backend\"]\n" "default = [\"pulseaudio_backend\"]\n" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:761 msgid "" "`pulseaudio_backend` is a default feature. It is always enabled unless we " "explicitly turn off default features by adding `--no-default-features` to " "`CARGO_FEATURES`. Here we turn the `portaudio_backend` and " "`pulseaudio_backend` features into port options:" msgstr "" "`pulseaudio_backend` — это функция по умолчанию. Она всегда включена, если " "мы явно не отключим функции по умолчанию, добавив `--no-default-features` в " "`CARGO_FEATURES`. Здесь мы превращаем функции `portaudio_backend` и " "`pulseaudio_backend` в опции порта:" #. type: delimited block . 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:765 #, no-wrap msgid "CARGO_FEATURES=\t--no-default-features\n" msgstr "CARGO_FEATURES=\t--no-default-features\n" #. type: delimited block . 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:767 #, no-wrap msgid "OPTIONS_DEFINE=\tPORTAUDIO PULSEAUDIO\n" msgstr "OPTIONS_DEFINE=\tPORTAUDIO PULSEAUDIO\n" #. type: delimited block . 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:770 #, no-wrap msgid "" "PORTAUDIO_VARS=\t\tCARGO_FEATURES+=portaudio_backend\n" "PULSEAUDIO_VARS=\tCARGO_FEATURES+=pulseaudio_backend\n" msgstr "" "PORTAUDIO_VARS=\t\tCARGO_FEATURES+=portaudio_backend\n" "PULSEAUDIO_VARS=\tCARGO_FEATURES+=pulseaudio_backend\n" #. type: Block title #: documentation/content/en/books/porters-handbook/special/_index.adoc:775 #, no-wrap msgid "Listing Crate Licenses" msgstr "Перечисление лицензий крейтов" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:781 msgid "" "Crates have their own licenses. It is important to know what they are when " "adding a `LICENSE` block to the port (see crossref:makefiles[licenses," "Licenses]). The helper target `cargo-crates-licenses` will try to list all " "the licenses of all crates defined in `CARGO_CRATES`." msgstr "" "Крейты имеют собственные лицензии. Важно знать, какие они, при добавлении " "блока `LICENSE` в порт (см. crossref:makefiles[licenses,Лицензии]). " "Вспомогательная цель `cargo-crates-licenses` попытается перечислить все " "лицензии всех ящиков, определённых в `CARGO_CRATES`." #. type: delimited block . 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:792 #, no-wrap msgid "" "% make cargo-crates-licenses\n" "aho-corasick-0.6.4 Unlicense/MIT\n" "ansi_term-0.11.0 MIT\n" "arrayvec-0.4.7 MIT/Apache-2.0\n" "atty-0.2.9 MIT\n" "bitflags-1.0.1 MIT/Apache-2.0\n" "byteorder-1.2.2 Unlicense/MIT\n" "[...]\n" msgstr "" "% make cargo-crates-licenses\n" "aho-corasick-0.6.4 Unlicense/MIT\n" "ansi_term-0.11.0 MIT\n" "arrayvec-0.4.7 MIT/Apache-2.0\n" "atty-0.2.9 MIT\n" "bitflags-1.0.1 MIT/Apache-2.0\n" "byteorder-1.2.2 Unlicense/MIT\n" "[...]\n" #. type: delimited block = 6 #: documentation/content/en/books/porters-handbook/special/_index.adoc:798 msgid "" "The license names `make cargo-crates-licenses` outputs are SPDX 2.1 licenses " "expression which do not match the license names defined in the ports " "framework. They need to be translated to the names from crossref:" "makefiles[licenses-license-list,Predefined License List]." msgstr "" "Названия лицензий, которые выводит `make cargo-crates-licenses`, являются " "SPDX 2.1-совместимыми лицензионными выражениями, которые не совпадают с " "названиями лицензий, определёнными в фреймворке портов. Их необходимо " "перевести в названия из crossref:makefiles[licenses-license-list,Списка " "предопределённых лицензий]." #. type: Title === #: documentation/content/en/books/porters-handbook/special/_index.adoc:803 #, no-wrap msgid "Using `meson`" msgstr "Использование `meson`" #. type: delimited block = 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:806 msgid "For ports that use Meson, define `USES=meson`." msgstr "Для портов, использующих Meson, определите `USES=meson`." #. type: Block title #: documentation/content/en/books/porters-handbook/special/_index.adoc:808 #, no-wrap msgid "Variables for Ports That Use `meson`" msgstr "Переменные для портов, использующих `meson`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:815 #, no-wrap msgid "`MESON_ARGS`" msgstr "`MESON_ARGS`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:817 #, no-wrap msgid "Port specific Meson flags to be passed to the `meson` binary." msgstr "Порт-специфичные флаги Meson, передаваемые в бинарный файл `meson`." #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:818 #, no-wrap msgid "`MESON_BUILD_DIR`" msgstr "`MESON_BUILD_DIR`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:819 #, no-wrap msgid "Path to the build directory relative to `WRKSRC`. Default is `_build`." msgstr "Путь к каталогу сборки относительно `WRKSRC`. По умолчанию — `_build`." #. type: Block title #: documentation/content/en/books/porters-handbook/special/_index.adoc:822 #, no-wrap msgid "`USES=meson` Example" msgstr "Пример `USES=meson`" #. type: delimited block = 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:826 msgid "This snippet demonstrates the use of Meson for a port." msgstr "Этот фрагмент демонстрирует использование Meson для порта." #. type: delimited block . 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:831 #, no-wrap msgid "" "USES=\t\tmeson\n" "MESON_ARGS=\t-Dfoo=enabled\n" msgstr "" "USES=\t\tmeson\n" "MESON_ARGS=\t-Dfoo=enabled\n" #. type: Title === #: documentation/content/en/books/porters-handbook/special/_index.adoc:836 #, no-wrap msgid "Building Go Applications" msgstr "Создание приложений на Go" #. type: delimited block = 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:840 msgid "" "For ports that use Go, define `USES=go`. Refer to crossref:uses[uses-go," "`go`] for a list of variables that can be set to control the build process." msgstr "" "Для портов, использующих Go, определите `USES=go`. Обратитесь к разделу " "crossref:uses[uses-go,`go`] для получения списка переменных, которые можно " "задать для управления процессом сборки." #. type: Block title #: documentation/content/en/books/porters-handbook/special/_index.adoc:842 #, no-wrap msgid "Creating a Port for a Go Modules Based Application" msgstr "Создание порта для приложения на основе модулей Go" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:846 msgid "" "In most cases, it is sufficient to set the `GO_MODULE` variable to the value " "specified by the `module` directive in `go.mod`:" msgstr "" "В большинстве случаев достаточно установить переменную `GO_MODULE` в " "значение, указанное директивой `module` в `go.mod`:" #. type: delimited block . 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:853 #, no-wrap msgid "" "PORTNAME= hey\n" "DISTVERSIONPREFIX=\tv\n" "DISTVERSION= 0.1.4\n" "CATEGORIES= benchmarks\n" msgstr "" "PORTNAME= hey\n" "DISTVERSIONPREFIX=\tv\n" "DISTVERSION= 0.1.4\n" "CATEGORIES= benchmarks\n" #. type: delimited block . 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:857 #, no-wrap msgid "" "MAINTAINER= dmgk@FreeBSD.org\n" "COMMENT= Tiny program that sends some load to a web application\n" "WWW= https://github.com/rakyll/hey/\n" msgstr "" "MAINTAINER= dmgk@FreeBSD.org\n" "COMMENT= Tiny program that sends some load to a web application\n" "WWW= https://github.com/rakyll/hey/\n" #. type: delimited block . 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:860 #, no-wrap msgid "" "LICENSE= APACHE20\n" "LICENSE_FILE= ${WRKSRC}/LICENSE\n" msgstr "" "LICENSE= APACHE20\n" "LICENSE_FILE= ${WRKSRC}/LICENSE\n" #. type: delimited block . 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:863 #, no-wrap msgid "" "USES= go:modules\n" "GO_MODULE= github.com/rakyll/hey\n" msgstr "" "USES= go:modules\n" "GO_MODULE= github.com/rakyll/hey\n" #. type: delimited block . 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:865 #, no-wrap msgid "PLIST_FILES= bin/hey\n" msgstr "PLIST_FILES= bin/hey\n" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:870 msgid "" "If the \"easy\" way is not adequate or more control over dependencies is " "needed, the full porting process is described below." msgstr "" "Если «простой» способ не подходит или требуется больший контроль над " "зависимостями, полный процесс переноса описан ниже." #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:873 msgid "" "Creating a Go-based port is a five-stage process. First we need to provide " "a ports template that fetches the application distribution file:" msgstr "" "Создание порта на основе Go — это процесс из пяти этапов. Сначала необходимо " "предоставить шаблон портов, который загружает дистрибутивный файл приложения:" #. type: delimited block . 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:880 #: documentation/content/en/books/porters-handbook/special/_index.adoc:930 #, no-wrap msgid "" "PORTNAME=\tghq\n" "DISTVERSIONPREFIX=\tv\n" "DISTVERSION=\t0.12.5\n" "CATEGORIES=\tdevel\n" msgstr "" "PORTNAME=\tghq\n" "DISTVERSIONPREFIX=\tv\n" "DISTVERSION=\t0.12.5\n" "CATEGORIES=\tdevel\n" #. type: delimited block . 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:884 #: documentation/content/en/books/porters-handbook/special/_index.adoc:934 #, no-wrap msgid "" "MAINTAINER=\ttobik@FreeBSD.org\n" "COMMENT=\tRemote repository management made easy\n" "WWW=\t\thttps://github.com/x-motemen/ghq/\n" msgstr "" "MAINTAINER=\ttobik@FreeBSD.org\n" "COMMENT=\tRemote repository management made easy\n" "WWW=\t\thttps://github.com/x-motemen/ghq/\n" #. type: delimited block . 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:888 #, no-wrap msgid "" "USES=\t\tgo:modules\n" "USE_GITHUB=\tyes\n" "GH_ACCOUNT=\tmotemen\n" msgstr "" "USES=\t\tgo:modules\n" "USE_GITHUB=\tyes\n" "GH_ACCOUNT=\tmotemen\n" #. type: delimited block . 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:902 #, no-wrap msgid "" "% make makesum\n" "===> License MIT accepted by the user\n" "=> motemen-ghq-v0.12.5_GH0.tar.gz doesn't seem to exist in /usr/ports/distfiles/.\n" "=> Attempting to fetch https://codeload.github.com/motemen/ghq/tar.gz/v0.12.5?dummy=/motemen-ghq-v0.12.5_GH0.tar.gz\n" "fetch: https://codeload.github.com/motemen/ghq/tar.gz/v0.12.5?dummy=/motemen-ghq-v0.12.5_GH0.tar.gz: size of remote file is not known\n" "motemen-ghq-v0.12.5_GH0.tar.gz 32 kB 177 kBps 00s\n" msgstr "" "% make makesum\n" "===> License MIT accepted by the user\n" "=> motemen-ghq-v0.12.5_GH0.tar.gz doesn't seem to exist in /usr/ports/distfiles/.\n" "=> Attempting to fetch https://codeload.github.com/motemen/ghq/tar.gz/v0.12.5?dummy=/motemen-ghq-v0.12.5_GH0.tar.gz\n" "fetch: https://codeload.github.com/motemen/ghq/tar.gz/v0.12.5?dummy=/motemen-ghq-v0.12.5_GH0.tar.gz: size of remote file is not known\n" "motemen-ghq-v0.12.5_GH0.tar.gz 32 kB 177 kBps 00s\n" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:906 msgid "" "Now the distribution file is ready to use and we can extract the required Go " "module dependencies. This step requires having package:ports-mgmt/" "modules2tuple[] installed:" msgstr "" "Теперь файл дистрибутива готов к использованию, и мы можем извлечь " "необходимые зависимости модуля Go. Этот шаг требует наличия установленного " "пакета package:ports-mgmt/modules2tuple[]:" #. type: delimited block . 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:920 #, no-wrap msgid "" "% make gomod-vendor\n" "[...]\n" "GH_TUPLE=\t\\\n" "\t\tSongmu:gitconfig:v0.0.2:songmu_gitconfig/vendor/github.com/Songmu/gitconfig \\\n" "\t\tdaviddengcn:go-colortext:186a3d44e920:daviddengcn_go_colortext/vendor/github.com/daviddengcn/go-colortext \\\n" "\t\tgo-yaml:yaml:v2.2.2:go_yaml_yaml/vendor/gopkg.in/yaml.v2 \\\n" "\t\tgolang:net:3ec191127204:golang_net/vendor/golang.org/x/net \\\n" "\t\tgolang:sync:112230192c58:golang_sync/vendor/golang.org/x/sync \\\n" "\t\tgolang:xerrors:3ee3066db522:golang_xerrors/vendor/golang.org/x/xerrors \\\n" "\t\tmotemen:go-colorine:45d19169413a:motemen_go_colorine/vendor/github.com/motemen/go-colorine \\\n" "\t\turfave:cli:v1.20.0:urfave_cli/vendor/github.com/urfave/cli\n" msgstr "" "% make gomod-vendor\n" "[...]\n" "GH_TUPLE=\t\\\n" "\t\tSongmu:gitconfig:v0.0.2:songmu_gitconfig/vendor/github.com/Songmu/gitconfig \\\n" "\t\tdaviddengcn:go-colortext:186a3d44e920:daviddengcn_go_colortext/vendor/github.com/daviddengcn/go-colortext \\\n" "\t\tgo-yaml:yaml:v2.2.2:go_yaml_yaml/vendor/gopkg.in/yaml.v2 \\\n" "\t\tgolang:net:3ec191127204:golang_net/vendor/golang.org/x/net \\\n" "\t\tgolang:sync:112230192c58:golang_sync/vendor/golang.org/x/sync \\\n" "\t\tgolang:xerrors:3ee3066db522:golang_xerrors/vendor/golang.org/x/xerrors \\\n" "\t\tmotemen:go-colorine:45d19169413a:motemen_go_colorine/vendor/github.com/motemen/go-colorine \\\n" "\t\turfave:cli:v1.20.0:urfave_cli/vendor/github.com/urfave/cli\n" #. type: delimited block . 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:946 #, no-wrap msgid "" "USES=\t\tgo:modules\n" "USE_GITHUB=\tyes\n" "GH_ACCOUNT=\tmotemen\n" "GH_TUPLE=\tSongmu:gitconfig:v0.0.2:songmu_gitconfig/vendor/github.com/Songmu/gitconfig \\\n" "\t\tdaviddengcn:go-colortext:186a3d44e920:daviddengcn_go_colortext/vendor/github.com/daviddengcn/go-colortext \\\n" "\t\tgo-yaml:yaml:v2.2.2:go_yaml_yaml/vendor/gopkg.in/yaml.v2 \\\n" "\t\tgolang:net:3ec191127204:golang_net/vendor/golang.org/x/net \\\n" "\t\tgolang:sync:112230192c58:golang_sync/vendor/golang.org/x/sync \\\n" "\t\tgolang:xerrors:3ee3066db522:golang_xerrors/vendor/golang.org/x/xerrors \\\n" "\t\tmotemen:go-colorine:45d19169413a:motemen_go_colorine/vendor/github.com/motemen/go-colorine \\\n" "\t\turfave:cli:v1.20.0:urfave_cli/vendor/github.com/urfave/cli\n" msgstr "" "USES=\t\tgo:modules\n" "USE_GITHUB=\tyes\n" "GH_ACCOUNT=\tmotemen\n" "GH_TUPLE=\tSongmu:gitconfig:v0.0.2:songmu_gitconfig/vendor/github.com/Songmu/gitconfig \\\n" "\t\tdaviddengcn:go-colortext:186a3d44e920:daviddengcn_go_colortext/vendor/github.com/daviddengcn/go-colortext \\\n" "\t\tgo-yaml:yaml:v2.2.2:go_yaml_yaml/vendor/gopkg.in/yaml.v2 \\\n" "\t\tgolang:net:3ec191127204:golang_net/vendor/golang.org/x/net \\\n" "\t\tgolang:sync:112230192c58:golang_sync/vendor/golang.org/x/sync \\\n" "\t\tgolang:xerrors:3ee3066db522:golang_xerrors/vendor/golang.org/x/xerrors \\\n" "\t\tmotemen:go-colorine:45d19169413a:motemen_go_colorine/vendor/github.com/motemen/go-colorine \\\n" "\t\turfave:cli:v1.20.0:urfave_cli/vendor/github.com/urfave/cli\n" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:951 msgid "" "[.filename]#distinfo# needs to be regenerated to contain all the " "distribution files:" msgstr "" "[.filename]#distinfo# необходимо обновить, чтобы включить все дистрибутивные " "файлы:" #. type: delimited block . 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:964 #, no-wrap msgid "" "% make makesum\n" "=> Songmu-gitconfig-v0.0.2_GH0.tar.gz doesn't seem to exist in /usr/ports/distfiles/.\n" "=> Attempting to fetch https://codeload.github.com/Songmu/gitconfig/tar.gz/v0.0.2?dummy=/Songmu-gitconfig-v0.0.2_GH0.tar.gz\n" "fetch: https://codeload.github.com/Songmu/gitconfig/tar.gz/v0.0.2?dummy=/Songmu-gitconfig-v0.0.2_GH0.tar.gz: size of remote file is not known\n" "Songmu-gitconfig-v0.0.2_GH0.tar.gz 5662 B 936 kBps 00s\n" "=> daviddengcn-go-colortext-186a3d44e920_GH0.tar.gz doesn't seem to exist in /usr/ports/distfiles/.\n" "=> Attempting to fetch https://codeload.github.com/daviddengcn/go-colortext/tar.gz/186a3d44e920?dummy=/daviddengcn-go-colortext-186a3d44e920_GH0.tar.gz\n" "fetch: https://codeload.github.com/daviddengcn/go-colortext/tar.gz/186a3d44e920?dummy=/daviddengcn-go-colortext-186a3d44e920_GH0.tar.gz: size of remote file is not known\n" "daviddengcn-go-colortext-186a3d44e920_GH0.tar. 4534 B 1098 kBps 00s\n" "[...]\n" msgstr "" "% make makesum\n" "=> Songmu-gitconfig-v0.0.2_GH0.tar.gz doesn't seem to exist in /usr/ports/distfiles/.\n" "=> Attempting to fetch https://codeload.github.com/Songmu/gitconfig/tar.gz/v0.0.2?dummy=/Songmu-gitconfig-v0.0.2_GH0.tar.gz\n" "fetch: https://codeload.github.com/Songmu/gitconfig/tar.gz/v0.0.2?dummy=/Songmu-gitconfig-v0.0.2_GH0.tar.gz: size of remote file is not known\n" "Songmu-gitconfig-v0.0.2_GH0.tar.gz 5662 B 936 kBps 00s\n" "=> daviddengcn-go-colortext-186a3d44e920_GH0.tar.gz doesn't seem to exist in /usr/ports/distfiles/.\n" "=> Attempting to fetch https://codeload.github.com/daviddengcn/go-colortext/tar.gz/186a3d44e920?dummy=/daviddengcn-go-colortext-186a3d44e920_GH0.tar.gz\n" "fetch: https://codeload.github.com/daviddengcn/go-colortext/tar.gz/186a3d44e920?dummy=/daviddengcn-go-colortext-186a3d44e920_GH0.tar.gz: size of remote file is not known\n" "daviddengcn-go-colortext-186a3d44e920_GH0.tar. 4534 B 1098 kBps 00s\n" "[...]\n" #. type: Block title #: documentation/content/en/books/porters-handbook/special/_index.adoc:972 #, no-wrap msgid "Setting Output Binary Name or Installation Path" msgstr "Установка имени выходного бинарного файла или пути установки" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:977 msgid "" "Some ports need to install the resulting binary under a different name or to " "a path other than the default `${PREFIX}/bin`. This can be done by using " "`GO_TARGET` tuple syntax, for example:" msgstr "" "Некоторые порты требуют установки результирующего бинарного файла под другим " "именем или в путь, отличный от стандартного `${PREFIX}/bin`. Это можно " "сделать с помощью синтаксиса кортежа `GO_TARGET`, например:" #. type: delimited block . 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:981 #, no-wrap msgid "GO_TARGET= ./cmd/ipfs:ipfs-go\n" msgstr "GO_TARGET= ./cmd/ipfs:ipfs-go\n" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:984 msgid "will install `ipfs` binary as `${PREFIX}/bin/ipfs-go` and" msgstr "установит бинарный файл `ipfs` как `${PREFIX}/bin/ipfs-go` и" #. type: delimited block . 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:988 #, no-wrap msgid "GO_TARGET= ./dnscrypt-proxy:${PREFIX}/sbin/dnscrypt-proxy\n" msgstr "GO_TARGET= ./dnscrypt-proxy:${PREFIX}/sbin/dnscrypt-proxy\n" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:991 msgid "will install `dnscrypt-proxy` to `${PREFIX}/sbin`." msgstr "установит `dnscrypt-proxy` в `${PREFIX}/sbin`." #. type: Title === #: documentation/content/en/books/porters-handbook/special/_index.adoc:994 #, no-wrap msgid "Building Haskell Applications with `cabal`" msgstr "Построение приложений на Haskell с помощью `cabal`" #. type: delimited block = 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:998 msgid "" "For ports that use Cabal, build system defines `USES=cabal`. Refer to " "crossref:uses[uses-cabal,`cabal`] for a list of variables that can be set to " "control the build process." msgstr "" "Для портов, использующих Cabal, система сборки определяет `USES=cabal`. " "Обратитесь к разделу crossref:uses[uses-cabal,`cabal`] для получения списка " "переменных, которые можно задать для управления процессом сборки." #. type: Block title #: documentation/content/en/books/porters-handbook/special/_index.adoc:1000 #, no-wrap msgid "Creating a Port for a Hackage-hosted Haskell Application" msgstr "Создание порта для приложения Haskell с Hackage" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:1005 msgid "" "When preparing a Haskell Cabal port, package:devel/hs-cabal-install[] and " "package:ports-mgmt/hs-cabal2tuple[] programs are required, so make sure they " "are installed beforehand. First we need to define common ports variables " "that allow cabal-install to fetch the package distribution file:" msgstr "" "При подготовке порта Haskell Cabal требуются программы package:devel/hs-" "cabal-install[] и package:ports-mgmt/hs-cabal2tuple[], поэтому убедитесь, " "что они установлены заранее. Сначала необходимо определить общие переменные " "портов, которые позволяют cabal-install загрузить файл дистрибутива пакета:" #. type: delimited block . 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:1011 #, no-wrap msgid "" "PORTNAME=\tShellCheck\n" "DISTVERSION=\t0.6.0\n" "CATEGORIES=\tdevel\n" msgstr "" "PORTNAME=\tShellCheck\n" "DISTVERSION=\t0.6.0\n" "CATEGORIES=\tdevel\n" #. type: delimited block . 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:1015 #, no-wrap msgid "" "MAINTAINER=\thaskell@FreeBSD.org\n" "COMMENT=\tShell script analysis tool\n" "WWW=\t\thttps://www.shellcheck.net/\n" msgstr "" "MAINTAINER=\thaskell@FreeBSD.org\n" "COMMENT=\tShell script analysis tool\n" "WWW=\t\thttps://www.shellcheck.net/\n" #. type: delimited block . 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:1017 #: documentation/content/en/books/porters-handbook/special/_index.adoc:1100 #, no-wrap msgid "USES=\t\tcabal\n" msgstr "USES=\t\tcabal\n" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:1022 msgid "" "This minimal Makefile fetches the distribution file with the `cabal-extract` " "helper target:" msgstr "" "Этот минимальный Makefile загружает файл дистрибутива с помощью " "вспомогательной цели `cabal-extract`:" #. type: delimited block . 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:1032 #, no-wrap msgid "" "% make cabal-extract\n" "[...]\n" "Downloading the latest package list from hackage.haskell.org\n" "cabal get ShellCheck-0.6.0\n" "Downloading ShellCheck-0.6.0\n" "Downloaded ShellCheck-0.6.0\n" "Unpacking to ShellCheck-0.6.0/\n" msgstr "" "% make cabal-extract\n" "[...]\n" "Downloading the latest package list from hackage.haskell.org\n" "cabal get ShellCheck-0.6.0\n" "Downloading ShellCheck-0.6.0\n" "Downloaded ShellCheck-0.6.0\n" "Unpacking to ShellCheck-0.6.0/\n" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:1035 msgid "" "Now that we have ShellCheck.cabal package description file under `${WRKSRC}" "`, we can use `cabal-configure` to generate the build plan:" msgstr "" "Теперь, когда у нас есть файл описания пакета ShellCheck.cabal в `${WRKSRC}" "`, мы можем использовать `cabal-configure` для создания плана сборки:" #. type: delimited block . 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:1046 #, no-wrap msgid "" "% make cabal-configure\n" "[...]\n" "Resolving dependencies...\n" "Build profile: -w ghc-8.10.7 -O1\n" "In order, the following would be built (use -v for more details):\n" " - Diff-0.4.1 (lib) (requires download & build)\n" " - OneTuple-0.3.1 (lib) (requires download & build)\n" "[...]\n" msgstr "" "% make cabal-configure\n" "[...]\n" "Resolving dependencies...\n" "Build profile: -w ghc-8.10.7 -O1\n" "In order, the following would be built (use -v for more details):\n" " - Diff-0.4.1 (lib) (requires download & build)\n" " - OneTuple-0.3.1 (lib) (requires download & build)\n" "[...]\n" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:1049 msgid "Once done, a list of required dependencies can generated:" msgstr "После завершения можно сгенерировать список необходимых зависимостей:" #. type: delimited block . 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:1057 #, no-wrap msgid "" "% make make-use-cabal\n" "USE_CABAL=\tQuickCheck-2.12.6.1 \\\n" "\t\thashable-1.3.0.0 \\\n" "\t\tinteger-logarithms-1.0.3 \\\n" "[...]\n" msgstr "" "% make make-use-cabal\n" "USE_CABAL=\tQuickCheck-2.12.6.1 \\\n" "\t\thashable-1.3.0.0 \\\n" "\t\tinteger-logarithms-1.0.3 \\\n" "[...]\n" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:1063 msgid "" "Haskell packages may contain revisions, just like FreeBSD ports. Revisions " "can affect [.filename]#.cabal# files only. Note additional version numbers " "after the `_` symbol. Put newly generated `USE_CABAL` list instead of an " "old one." msgstr "" "Пакеты Haskell могут содержать ревизии, как и порты FreeBSD. Ревизии могут " "затрагивать только файлы [.filename]#.cabal#. Обратите внимание на " "дополнительные номера версий после символа `_`. Замените старый список " "`USE_CABAL` на вновь сгенерированный." #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:1065 msgid "" "Finally, [.filename]#distinfo# needs to be regenerated to contain all the " "distribution files:" msgstr "" "Наконец, файл [.filename]#distinfo# необходимо перегенерировать, чтобы он " "содержал все файлы дистрибутива:" #. type: delimited block . 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:1076 #, no-wrap msgid "" "% make makesum\n" "=> ShellCheck-0.6.0.tar.gz doesn't seem to exist in /usr/local/poudriere/ports/git/distfiles/cabal.\n" "=> Attempting to fetch https://hackage.haskell.org/package/ShellCheck-0.6.0/ShellCheck-0.6.0.tar.gz\n" "ShellCheck-0.6.0.tar.gz 136 kB 642 kBps 00s\n" "=> QuickCheck-2.12.6.1/QuickCheck-2.12.6.1.tar.gz doesn't seem to exist in /usr/local/poudriere/ports/git/distfiles/cabal.\n" "=> Attempting to fetch https://hackage.haskell.org/package/QuickCheck-2.12.6.1/QuickCheck-2.12.6.1.tar.gz\n" "QuickCheck-2.12.6.1/QuickCheck-2.12.6.1.tar.gz 65 kB 361 kBps 00s\n" "[...]\n" msgstr "" "% make makesum\n" "=> ShellCheck-0.6.0.tar.gz doesn't seem to exist in /usr/local/poudriere/ports/git/distfiles/cabal.\n" "=> Attempting to fetch https://hackage.haskell.org/package/ShellCheck-0.6.0/ShellCheck-0.6.0.tar.gz\n" "ShellCheck-0.6.0.tar.gz 136 kB 642 kBps 00s\n" "=> QuickCheck-2.12.6.1/QuickCheck-2.12.6.1.tar.gz doesn't seem to exist in /usr/local/poudriere/ports/git/distfiles/cabal.\n" "=> Attempting to fetch https://hackage.haskell.org/package/QuickCheck-2.12.6.1/QuickCheck-2.12.6.1.tar.gz\n" "QuickCheck-2.12.6.1/QuickCheck-2.12.6.1.tar.gz 65 kB 361 kBps 00s\n" "[...]\n" #. type: delimited block = 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:1086 msgid "" "Some Haskell ports install various data files under `share/${PORTNAME}`. For " "such cases special handling is required on the port side. The port should " "define the `CABAL_WRAPPER_SCRIPTS` knob listing each executable that is " "going to use data files. Moreover, in rare cases the program being ported " "uses data files of other Haskell packages, in which case the " "`FOO_DATADIR_VARS` comes to the rescue." msgstr "" "Некоторые порты Haskell устанавливают различные файлы данных в `share/" "${PORTNAME}`. В таких случаях требуется особая обработка на стороне порта. " "Порт должен определить параметр `CABAL_WRAPPER_SCRIPTS`, перечислив каждый " "исполняемый файл, который будет использовать файлы данных. Более того, в " "редких случаях портируемая программа использует файлы данных других пакетов " "Haskell, и тогда на помощь приходит `FOO_DATADIR_VARS`." #. type: Block title #: documentation/content/en/books/porters-handbook/special/_index.adoc:1088 #, no-wrap msgid "Handling Data Files in a Haskell Port" msgstr "Обработка файлов данных в порте Haskell" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:1092 msgid "" "`devel/hs-profiteur` is a Haskell application that generates a single-page " "HTML with some content." msgstr "" "`devel/hs-profiteur` — это приложение на Haskell, которое генерирует " "одностраничный HTML с некоторым содержимым." #. type: delimited block . 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:1096 #, no-wrap msgid "PORTNAME=\tprofiteur\n" msgstr "PORTNAME=\tprofiteur\n" #. type: delimited block . 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:1098 #: documentation/content/en/books/porters-handbook/special/_index.adoc:1113 #: documentation/content/en/books/porters-handbook/special/_index.adoc:1131 #, no-wrap msgid "[...]\n" msgstr "[...]\n" #. type: delimited block . 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:1104 #: documentation/content/en/books/porters-handbook/special/_index.adoc:1117 #, no-wrap msgid "" "USE_CABAL=\tOneTuple-0.3.1_2 \\\n" "\t\tQuickCheck-2.14.2 \\\n" "\t\t[...]\n" msgstr "" "USE_CABAL=\tOneTuple-0.3.1_2 \\\n" "\t\tQuickCheck-2.14.2 \\\n" "\t\t[...]\n" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:1109 msgid "" "It installs HTML templates under `share/profiteur`, so we need to add " "`CABAL_WRAPPER_SCRIPTS` knob:" msgstr "" "Он устанавливает HTML-шаблоны в `share/profiteur`, поэтому необходимо " "добавить параметр `CABAL_WRAPPER_SCRIPTS`:" #. type: delimited block . 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:1120 #, no-wrap msgid "CABAL_WRAPPER_SCRIPTS=\t\t${CABAL_EXECUTABLES}\n" msgstr "CABAL_WRAPPER_SCRIPTS=\t\t${CABAL_EXECUTABLES}\n" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:1127 msgid "" "The program also tries to access the `jquery.js` file, which is a part of " "`js-jquery-3.3.1` Haskell package. For that file to be found, we need to " "make the wrapper script to look for `js-jquery` data files in `share/" "profiteur` too. We use `profiteur_DATADIR_VARS` for this:" msgstr "" "Программа также пытается получить доступ к файлу `jquery.js`, который " "является частью пакета Haskell `js-jquery-3.3.1`. Чтобы этот файл был " "найден, необходимо, чтобы скрипт-обёртка искал файлы данных `js-jquery` " "также в `share/profiteur`. Для этого используется `profiteur_DATADIR_VARS`:" #. type: delimited block . 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:1134 #, no-wrap msgid "" "CABAL_WRAPPER_SCRIPTS=\t\t${CABAL_EXECUTABLES}\n" "profiteur_DATADIR_VARS=\t\tjs-jquery\n" msgstr "" "CABAL_WRAPPER_SCRIPTS=\t\t${CABAL_EXECUTABLES}\n" "profiteur_DATADIR_VARS=\t\tjs-jquery\n" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:1139 msgid "" "Now the port will install the actual binary into `libexec/cabal/profiteur` " "and the script into `bin/profiteur`." msgstr "" "Теперь порт установит непосредственно бинарный файл в `libexec/cabal/" "profiteur`, а скрипт — в `bin/profiteur`." #. type: delimited block = 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:1144 msgid "" "There is no easy way to find out a proper value for the `FOO_DATADIR_VARS` " "knob apart from running the program and checking that everything works. " "Luckily, the need to use `FOO_DATADIR_VARS` is very rare." msgstr "" "Не существует простого способа определить подходящее значение для параметра " "`FOO_DATADIR_VARS`, кроме как запустить программу и проверить, что всё " "работает. К счастью, необходимость использовать `FOO_DATADIR_VARS` возникает " "очень редко." #. type: delimited block = 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:1146 msgid "" "Another corner case when porting complex Haskell programs is the presence of " "VCS dependencies in the `cabal.project` file." msgstr "" "Еще один крайний случай при переносе сложных программ на Haskell — наличие " "зависимостей от систем контроля версий (VCS) в файле `cabal.project`." #. type: Block title #: documentation/content/en/books/porters-handbook/special/_index.adoc:1148 #, no-wrap msgid "Porting Haskell Applications with VCS Dependencies" msgstr "Портирование приложений Haskell с зависимостями от VCS" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:1153 msgid "" "`net-p2p/cardano-node` is an extremely complex piece of software. In its " "`cabal.project` there are a lot of blocks like this:" msgstr "" "`net-p2p/cardano-node` — это чрезвычайно сложное программное обеспечение. В " "его `cabal.project` содержится множество блоков, подобных этому:" #. type: delimited block . 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:1162 #, no-wrap msgid "" "[...]\n" "source-repository-package\n" " type: git\n" " location: https://github.com/input-output-hk/cardano-crypto\n" " tag: f73079303f663e028288f9f4a9e08bcca39a923e\n" "[...]\n" msgstr "" "[...]\n" "source-repository-package\n" " type: git\n" " location: https://github.com/input-output-hk/cardano-crypto\n" " tag: f73079303f663e028288f9f4a9e08bcca39a923e\n" "[...]\n" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:1168 msgid "" "Dependencies of type `source-repository-package` are automatically pulled in " "by `cabal` during the build process. Unfortunately, this makes use of the " "network after the `fetch` stage. This is disallowed by the ports framework. " "These sources need to be listed in the port's Makefile. The `make-use-cabal` " "helper target can make it easy for packages hosted on GitHub. Running this " "target after the usual `cabal-extract` and `cabal-configure` will produce " "not only the `USE_CABAL` knob, but also `GH_TUPLE`:" msgstr "" "Зависимости типа `source-repository-package` автоматически подтягиваются " "`cabal` в процессе сборки. К сожалению, это приводит к использованию сети " "после этапа `fetch`, что запрещено в рамках системы портов. Эти исходники " "необходимо указать в Makefile порта. Вспомогательная цель `make-use-cabal` " "может упростить работу с пакетами, размещёнными на GitHub. Запуск этой цели " "после стандартных `cabal-extract` и `cabal-configure` позволит получить не " "только параметр `USE_CABAL`, но и `GH_TUPLE`:" #. type: delimited block . 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:1176 #, no-wrap msgid "" "% make make-use-cabal\n" "USE_CABAL=\tDiff-0.4.1 \\\n" "\t\tGlob-0.10.2_3 \\\n" "\t\tHUnit-1.6.2.0 \\\n" "\t\t[...]\n" msgstr "" "% make make-use-cabal\n" "USE_CABAL=\tDiff-0.4.1 \\\n" "\t\tGlob-0.10.2_3 \\\n" "\t\tHUnit-1.6.2.0 \\\n" "\t\t[...]\n" #. type: delimited block . 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:1180 #, no-wrap msgid "" "GH_TUPLE=\t\tinput-output-hk:cardano-base:0f3a867493059e650cda69e20a5cbf1ace289a57:cardano_base/dist-newstyle/src/cardano-b_-c8db9876882556ed \\\n" "\t\tinput-output-hk:cardano-crypto:f73079303f663e028288f9f4a9e08bcca39a923e:cardano_crypto/dist-newstyle/src/cardano-c_-253fd88117badd8f \\\n" "\t\t[...]\n" msgstr "" "GH_TUPLE=\t\tinput-output-hk:cardano-base:0f3a867493059e650cda69e20a5cbf1ace289a57:cardano_base/dist-newstyle/src/cardano-b_-c8db9876882556ed \\\n" "\t\tinput-output-hk:cardano-crypto:f73079303f663e028288f9f4a9e08bcca39a923e:cardano_crypto/dist-newstyle/src/cardano-c_-253fd88117badd8f \\\n" "\t\t[...]\n" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:1183 msgid "" "It might be useful to separate the `GH_TUPLE` items coming from `make-use-" "cabal` from the other ones to make it easy to update the port:" msgstr "" "Может быть полезно отделить элементы `GH_TUPLE`, поступающие из `make-use-" "cabal`, от остальных, чтобы упростить обновление порта:" #. type: delimited block . 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:1189 #, no-wrap msgid "" "GH_TUPLE=\tinput-output-hk:cardano-base:0f3a867493059e650cda69e20a5cbf1ace289a57:cardano_base/dist-newstyle/src/cardano-b_-c8db9876882556ed \\\n" "\t\tinput-output-hk:cardano-crypto:f73079303f663e028288f9f4a9e08bcca39a923e:cardano_crypto/dist-newstyle/src/cardano-c_-253fd88117badd8f \\\n" "\t\t[...]\n" msgstr "" "GH_TUPLE=\tinput-output-hk:cardano-base:0f3a867493059e650cda69e20a5cbf1ace289a57:cardano_base/dist-newstyle/src/cardano-b_-c8db9876882556ed \\\n" "\t\tinput-output-hk:cardano-crypto:f73079303f663e028288f9f4a9e08bcca39a923e:cardano_crypto/dist-newstyle/src/cardano-c_-253fd88117badd8f \\\n" "\t\t[...]\n" #. type: delimited block . 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:1191 #, no-wrap msgid "GH_TUPLE+=\tbitcoin-core:secp256k1:ac83be33d0956faf6b7f61a60ab524ef7d6a473a:secp\n" msgstr "GH_TUPLE+=\tbitcoin-core:secp256k1:ac83be33d0956faf6b7f61a60ab524ef7d6a473a:secp\n" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:1194 msgid "" "Haskell ports with VCS dependencies also require the following hack for the " "time being:" msgstr "" "Версия Haskell-портов с зависимостями от систем контроля версий временно " "требует следующего обходного решения:" #. type: delimited block . 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:1198 #, no-wrap msgid "BINARY_ALIAS=\tgit=true\n" msgstr "BINARY_ALIAS=\tgit=true\n" #. type: Title == #: documentation/content/en/books/porters-handbook/special/_index.adoc:1203 #, no-wrap msgid "Using GNU Autotools" msgstr "Использование GNU Autotools" #. type: delimited block = 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:1207 msgid "" "If a port needs any of the GNU Autotools software, add `USES=autoreconf`. " "See crossref:uses[uses-autoreconf,`autoreconf`] for more information." msgstr "" "Если порту требуется какое-либо программное обеспечение GNU Autotools, " "добавьте `USES=autoreconf`. Подробнее см. в crossref:uses[uses-autoreconf," "`autoreconf`]." #. type: Title == #: documentation/content/en/books/porters-handbook/special/_index.adoc:1209 #, no-wrap msgid "Using GNU `gettext`" msgstr "Использование GNU `gettext`" #. type: Title === #: documentation/content/en/books/porters-handbook/special/_index.adoc:1212 #, no-wrap msgid "Basic Usage" msgstr "Простые варианты использования" #. type: delimited block = 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:1216 msgid "" "If the port requires `gettext`, set `USES= gettext`, and the port will " "inherit a dependency on [.filename]#libintl.so# from package:devel/" "gettext[]. Other values for `gettext` usage are listed in crossref:" "uses[uses-gettext,`USES=gettext`]." msgstr "" "Если порт требует `gettext`, установите `USES=gettext`, и порт унаследует " "зависимость от [.filename]#libintl.so# из пакета package:devel/gettext[]. " "Другие значения для использования `gettext` перечислены в crossref:uses[uses-" "gettext,`USES=gettext`]." #. type: delimited block = 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:1219 msgid "" "A rather common case is a port using `gettext` and `configure`. Generally, " "GNU `configure` should be able to locate `gettext` automatically." msgstr "" "Довольно распространённый случай — порт, использующий `gettext` и " "`configure`. Обычно GNU `configure` должен автоматически находить `gettext`." #. type: delimited block . 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:1224 #, no-wrap msgid "" "USES=\tgettext\n" "GNU_CONFIGURE=\tyes\n" msgstr "" "USES=\tgettext\n" "GNU_CONFIGURE=\tyes\n" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:1227 msgid "" "If it ever fails to, hints at the location of `gettext` can be passed in " "`CPPFLAGS` and `LDFLAGS` using `localbase` as follows:" msgstr "" "Если он не сработает, можно указать расположение `gettext` через `CPPFLAGS` " "и `LDFLAGS`, используя `localbase` следующим образом:" #. type: delimited block . 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:1232 #, no-wrap msgid "" "USES=\tgettext localbase:ldflags\n" "GNU_CONFIGURE=\tyes\n" msgstr "" "USES=\tgettext localbase:ldflags\n" "GNU_CONFIGURE=\tyes\n" #. type: Title === #: documentation/content/en/books/porters-handbook/special/_index.adoc:1235 #, no-wrap msgid "Optional Usage" msgstr "Оптимальное использование" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:1241 msgid "" "Some software products allow for disabling NLS. For example, through " "passing `--disable-nls` to `configure`. In that case, the port must use " "`gettext` conditionally, depending on the status of the `NLS` option. For " "ports of low to medium complexity, use this idiom:" msgstr "" "Некоторые программные продукты позволяют отключать NLS, к примеру, передавая " "параметр `--disable-nls` сценарию `configure`. В этом случае ваш порт должен " "использовать `gettext`, в зависимости от значения `NLS`. Для портов " "небольшой или средней сложности вы можете полагаться на следующую идиому:" #. type: delimited block . 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:1245 #: documentation/content/en/books/porters-handbook/special/_index.adoc:1260 #, no-wrap msgid "GNU_CONFIGURE=\t\tyes\n" msgstr "GNU_CONFIGURE=\t\tyes\n" #. type: delimited block . 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:1248 #, no-wrap msgid "" "OPTIONS_DEFINE=\t\tNLS\n" "OPTIONS_SUB=\t\tyes\n" msgstr "" "OPTIONS_DEFINE=\t\tNLS\n" "OPTIONS_SUB=\t\tyes\n" #. type: delimited block . 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:1251 #, no-wrap msgid "" "NLS_USES=\t\tgettext\n" "NLS_CONFIGURE_ENABLE=\tnls\n" msgstr "" "NLS_USES=\t\tgettext\n" "NLS_CONFIGURE_ENABLE=\tnls\n" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:1256 msgid "Or using the older way of using options:" msgstr "Или используя старый способ с опциями:" #. type: delimited block . 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:1262 #, no-wrap msgid "OPTIONS_DEFINE=\t\tNLS\n" msgstr "OPTIONS_DEFINE=\t\tNLS\n" #. type: delimited block . 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:1264 #, no-wrap msgid ".include \n" msgstr ".include \n" #. type: delimited block . 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:1272 #, no-wrap msgid "" ".if ${PORT_OPTIONS:MNLS}\n" "USES+=\t\t\tgettext\n" "PLIST_SUB+=\t\tNLS=\"\"\n" ".else\n" "CONFIGURE_ARGS+=\t--disable-nls\n" "PLIST_SUB+=\t\tNLS=\"@comment \"\n" ".endif\n" msgstr "" ".if ${PORT_OPTIONS:MNLS}\n" "USES+=\t\t\tgettext\n" "PLIST_SUB+=\t\tNLS=\"\"\n" ".else\n" "CONFIGURE_ARGS+=\t--disable-nls\n" "PLIST_SUB+=\t\tNLS=\"@comment \"\n" ".endif\n" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:1283 msgid "" "The next item on the to-do list is to arrange so that the message catalog " "files are included in the packing list conditionally. The [." "filename]#Makefile# part of this task is already provided by the idiom. It " "is explained in the section on crossref:plist[plist-sub,advanced [." "filename]#pkg-plist# practices]. In a nutshell, each occurrence of `%%NLS%" "%` in [.filename]#pkg-plist# will be replaced by \"`@comment `\" if NLS is " "disabled, or by a null string if NLS is enabled. Consequently, the lines " "prefixed by `%%NLS%%` will become mere comments in the final packing list if " "NLS is off; otherwise the prefix will be just left out. Then insert `%%NLS%" "%` before each path to a message catalog file in [.filename]#pkg-plist#. " "For example:" msgstr "" "Следующий пункт в списке задач — организовать условное включение файлов " "каталогов сообщений в упаковочный список. Часть, связанная с [." "filename]#Makefile#, уже предусмотрена идиомой. Это объясняется в разделе " "crossref:plist[plist-sub,расширенные практики работы с [.filename]#pkg-" "plist#]. Вкратце, каждое вхождение `%%NLS%%` в [.filename]#pkg-plist# будет " "заменено на \"`@comment `\", если NLS отключен, или на пустую строку, если " "NLS включен. Следовательно, строки с префиксом `%%NLS%%` станут обычными " "комментариями в итоговом упаковочном списке, если NLS выключен; в противном " "случае префикс будет просто удален. Затем вставьте `%%NLS%%` перед каждым " "путем к файлу каталога сообщений в [.filename]#pkg-plist#. Например:" #. type: delimited block . 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:1288 #, no-wrap msgid "" "%%NLS%%share/locale/fr/LC_MESSAGES/foobar.mo\n" "%%NLS%%share/locale/no/LC_MESSAGES/foobar.mo\n" msgstr "" "%%NLS%%share/locale/fr/LC_MESSAGES/foobar.mo\n" "%%NLS%%share/locale/no/LC_MESSAGES/foobar.mo\n" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:1291 msgid "" "In high complexity cases, more advanced techniques may be needed, such as " "crossref:plist[plist-dynamic,dynamic packing list generation]." msgstr "" "В особо сложных случаях вам понадобиться использовать более продвинутые " "техники, чем данный рецепт, такие как crossref:plist[plist-dynamic," "динамические списки упаковки]." #. type: Title === #: documentation/content/en/books/porters-handbook/special/_index.adoc:1293 #, no-wrap msgid "Handling Message Catalog Directories" msgstr "Управление каталогами сообщений" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:1300 msgid "" "There is a point to note about installing message catalog files. The target " "directories for them, which reside under [.filename]#LOCALBASE/share/" "locale#, must not be created and removed by a port. The most popular " "languages have their respective directories listed in [.filename]#PORTSDIR/" "Templates/BSD.local.dist#. The directories for many other languages are " "governed by the package:devel/gettext[] port. Consult its [.filename]#pkg-" "plist# and see whether the port is going to install a message catalog file " "for a unique language." msgstr "" "Существует момент, который следует учитывать при установке файлов каталогов " "сообщений. Целевые каталоги для размещения, расположенные под [." "filename]#LOCALBASE/shared/locale#, редко когда должны создаваться и " "удаляться портом. Для наиболее популярных языков имеются собственные " "каталоги, перечисленные в [.filename]#PORTSDIR/Templates/BSD.local.dist#. " "Каталоги для множества других языков управляются с помощью порта package:" "devel/gettext[]. Обратите внимание на его [.filename]#pkg-plist# и " "посмотрите, куда данный порт собирается установить файлы каталогов сообщений " "для единственного в своём роде языка." #. type: Title == #: documentation/content/en/books/porters-handbook/special/_index.adoc:1302 #, no-wrap msgid "Using Perl" msgstr "Использование Perl" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:1310 msgid "" "If `MASTER_SITES` is set to `CPAN`, the correct subdirectory is usually " "selected automatically. If the default subdirectory is wrong, `CPAN/Module` " "can be used to change it. `MASTER_SITES` can also be set to the old " "`MASTER_SITE_PERL_CPAN`, then the preferred value of `MASTER_SITE_SUBDIR` is " "the top-level hierarchy name. For example, the recommended value for `p5-" "Module-Name` is `Module`. The top-level hierarchy can be examined at " "https://cpan.org/modules/by-module/[cpan.org]. This keeps the port working " "when the author of the module changes." msgstr "" "Если `MASTER_SITES` установлена в значение `CPAN`, то правильный подкаталог " "выбирается автоматически. Если подкаталог по умолчанию указан неверно, можно " "использовать `CPAN/Module` для его изменения. Также можно установить " "`MASTER_SITES` в старое значение `MASTER_SITE_PERL_CPAN`, тогда " "предпочтительным значением `MASTER_SITE_SUBDIR` будет имя иерархии выше " "уровнем. Например, рекомендуемое значение для `p5-Module-Name` - `Module`. " "Иерархию верхнего уровня можно посмотреть на https://cpan.org/modules/by-" "module/[cpan.org]. Это гарантирует работоспособность порта при смене автора " "модуля." #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:1315 msgid "" "The exception to this rule is when the relevant directory does not exist or " "the distfile does not exist in that directory. In such case, using author's " "id as `MASTER_SITE_SUBDIR` is allowed. The `CPAN:AUTHOR` macro can be used, " "which will be translated to the hashed author directory. For example, `CPAN:" "AUTHOR` will be converted to `authors/id/A/AU/AUTHOR`." msgstr "" "Исключением этого правила является отсутствие соответствующего каталога или " "файла с дистрибутивом в этом каталоге. В качестве `MASTER_SITE_SUBDIR` в " "этом случае разрешается использовать id автора. Можно использовать макрос " "`CPAN:AUTHOR`, который будет преобразован в хешированный каталог автора. " "Например, `CPAN:AUTHOR` преобразуется в `authors/id/A/AU/AUTHOR`." #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:1317 msgid "" "When a port needs Perl support, it must set `USES=perl5` with the optional " "`USE_PERL5` described in crossref:uses[uses-perl5,the perl5 USES " "description]." msgstr "" "Когда порту требуется поддержка Perl, он должен установить `USES=perl5` с " "опциональным `USE_PERL5`, как описано в crossref:uses[uses-perl5,описание " "USES для perl5]." #. type: Block title #: documentation/content/en/books/porters-handbook/special/_index.adoc:1319 #, no-wrap msgid "Read-Only Variables for Ports That Use Perl" msgstr "Переменные (только для чтения) для портов, использующих Perl" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1323 #, no-wrap msgid "Read only variables" msgstr "Переменные (только для чтения)" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1326 #, no-wrap msgid "`PERL`" msgstr "`PERL`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1328 #, no-wrap msgid "The full path of the Perl 5 interpreter, either in the system or installed from a port, but without the version number. Use this when the software needs the path to the Perl interpreter. To replace \"``#!``\"lines in scripts, use crossref:uses[uses-shebangfix,`shebangfix`]." msgstr "Полный путь к интерпретатору Perl 5, будь то системный или установленный из порта, но без номера версии. Используйте это, когда программному обеспечению требуется путь к интерпретатору Perl. Для замены строк \"``#!``\" в скриптах используйте crossref:uses[uses-shebangfix,`shebangfix`]." #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1329 #, no-wrap msgid "`PERL_VERSION`" msgstr "`PERL_VERSION`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1331 #, no-wrap msgid "The full version of Perl installed (for example, `5.8.9`)." msgstr "Полная версия Perl установлена (например, `5.8.9`)." #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1332 #, no-wrap msgid "`PERL_LEVEL`" msgstr "`PERL_LEVEL`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1334 #, no-wrap msgid "The installed Perl version as an integer of the form `MNNNPP` (for example, `500809`)." msgstr "Установленная версия Perl в виде целого числа формата `MNNNPP` (например, `500809`)." #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1335 #, no-wrap msgid "`PERL_ARCH`" msgstr "`PERL_ARCH`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1337 #, no-wrap msgid "Where Perl stores architecture dependent libraries. Defaults to `${ARCH}-freebsd`." msgstr "Где Perl хранит архитектурно-зависимые библиотеки. По умолчанию: `${ARCH}-freebsd`." #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1338 #, no-wrap msgid "`PERL_PORT`" msgstr "`PERL_PORT`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1340 #, no-wrap msgid "Name of the Perl port that is installed (for example, `perl5`)." msgstr "Имя порта Perl, который установлен (например, `perl5`)." #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1341 #, no-wrap msgid "`SITE_PERL`" msgstr "`SITE_PERL`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1342 #, no-wrap msgid "Directory name where site specific Perl packages go. This value is added to `PLIST_SUB`." msgstr "Имя каталога, в котором размещаются специфичные для сайта пакеты Perl. Это значение добавляется в `PLIST_SUB`." #. type: delimited block = 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:1348 msgid "" "Ports of Perl modules which do not have an official website must link to " "`cpan.org` in the WWW line of [.filename]#Makefile#. The preferred URL form " "is `https://search.cpan.org/dist/Module-Name/` (including the trailing " "slash)." msgstr "" "Порты Perl-модулей, у которых нет официального сайта, должны ссылаться на " "`cpan.org` в строке WWW файла [.filename]#Makefile#. Предпочтительный формат " "URL: `https://search.cpan.org/dist/Module-Name/` (включая завершающий слеш)." #. type: delimited block = 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:1356 msgid "" "Do not use `${SITE_PERL}` in dependency declarations. Doing so assumes that " "[.filename]#perl5.mk# has been included, which is not always true. Ports " "depending on this port will have incorrect dependencies if this port's files " "move later in an upgrade. The right way to declare Perl module dependencies " "is shown in the example below." msgstr "" "Не используйте `${SITE_PERL}` в объявлениях зависимостей. Это предполагает, " "что был включён файл [.filename]#perl5.mk#, что не всегда верно. Порты, " "зависящие от этого порта, будут иметь некорректные зависимости, если файлы " "этого порта будут перемещены во время обновления. Правильный способ " "объявления зависимостей модулей Perl показан в примере ниже." #. type: Block title #: documentation/content/en/books/porters-handbook/special/_index.adoc:1359 #, no-wrap msgid "Perl Dependency Example" msgstr "Пример зависимости Perl" #. type: delimited block . 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:1365 #, no-wrap msgid "p5-IO-Tee>=0.64:devel/p5-IO-Tee\n" msgstr "p5-IO-Tee>=0.64:devel/p5-IO-Tee\n" #. type: delimited block = 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:1370 msgid "" "For Perl ports that install manual pages, the macro `PERL5_MAN3` and " "`PERL5_MAN1` can be used inside [.filename]#pkg-plist#. For example," msgstr "" "Для портов Perl, которые устанавливают страницы руководства, макросы " "`PERL5_MAN3` и `PERL5_MAN1` могут использоваться внутри [.filename]#pkg-" "plist#. Например," #. type: delimited block . 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:1375 #, no-wrap msgid "" "lib/perl5/5.14/man/man1/event.1.gz\n" "lib/perl5/5.14/man/man3/AnyEvent::I3.3.gz\n" msgstr "" "lib/perl5/5.14/man/man1/event.1.gz\n" "lib/perl5/5.14/man/man3/AnyEvent::I3.3.gz\n" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:1378 msgid "can be replaced with" msgstr "может быть заменено на" #. type: delimited block . 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:1383 #, no-wrap msgid "" "%%PERL5_MAN1%%/event.1.gz\n" "%%PERL5_MAN3%%/AnyEvent::I3.3.gz\n" msgstr "" "%%PERL5_MAN1%%/event.1.gz\n" "%%PERL5_MAN3%%/AnyEvent::I3.3.gz\n" #. type: delimited block = 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:1388 msgid "" "There are no `PERL5_MAN_x_` macros for the other sections (_x_ in `2` and " "`4` to `9`) because those get installed in the regular directories." msgstr "" "Для других разделов (_x_ в `2` и `4`–`9`) макросы `PERL5_MAN_x_` " "отсутствуют, так как они устанавливаются в обычные каталоги." #. type: Block title #: documentation/content/en/books/porters-handbook/special/_index.adoc:1391 #, no-wrap msgid "A Port Which Only Requires Perl to Build" msgstr "Порт, требующий Perl только для сборки" #. type: delimited block = 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:1395 msgid "As the default USE_PERL5 value is build and run, set it to:" msgstr "" "Поскольку значение USE_PERL5 по умолчанию включает build и run, установите " "его в:" #. type: delimited block . 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:1400 #, no-wrap msgid "" "USES=\t\tperl5\n" "USE_PERL5=\tbuild\n" msgstr "" "USES=\t\tperl5\n" "USE_PERL5=\tbuild\n" #. type: Block title #: documentation/content/en/books/porters-handbook/special/_index.adoc:1405 #, no-wrap msgid "A Port Which Also Requires Perl to Patch" msgstr "Порт, который также требует Perl для исправления" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:1410 msgid "" "From time to time, using man:sed[1] for patching is not enough. When using " "man:perl[1] is easier, use:" msgstr "" "Время от времени использования man:sed[1] для исправлений недостаточно. " "Когда использование man:perl[1] проще, примените:" #. type: delimited block . 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:1415 #, no-wrap msgid "" "USES=\t\tperl5\n" "USE_PERL5=\tpatch build run\n" msgstr "" "USES=\t\tperl5\n" "USE_PERL5=\tpatch build run\n" #. type: Block title #: documentation/content/en/books/porters-handbook/special/_index.adoc:1420 #, no-wrap msgid "A Perl Module Which Needs `ExtUtils::MakeMaker` to Build" msgstr "Модуль Perl, для сборки которого требуется `ExtUtils::MakeMaker`" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:1425 msgid "" "Most Perl modules come with a [.filename]#Makefile.PL# configure script. In " "this case, set:" msgstr "" "Большинство модулей Perl поставляются с конфигурационным скриптом [." "filename]#Makefile.PL#. В этом случае установите:" #. type: delimited block . 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:1430 #, no-wrap msgid "" "USES=\t\tperl5\n" "USE_PERL5=\tconfigure\n" msgstr "" "USES=\t\tperl5\n" "USE_PERL5=\tconfigure\n" #. type: Block title #: documentation/content/en/books/porters-handbook/special/_index.adoc:1435 #, no-wrap msgid "A Perl Module Which Needs `Module::Build` to Build" msgstr "Модуль Perl, для сборки которого требуется `Module::Build`" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:1439 msgid "" "When a Perl module comes with a [.filename]#Build.PL# configure script, it " "can require Module::Build, in which case, set" msgstr "" "Когда модуль Perl поставляется с конфигурационным скриптом [.filename]#Build." "PL#, он может требовать Module::Build, и в этом случае установите" #. type: delimited block . 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:1444 #, no-wrap msgid "" "USES=\t\tperl5\n" "USE_PERL5=\tmodbuild\n" msgstr "" "USES=\t\tperl5\n" "USE_PERL5=\tmodbuild\n" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:1447 msgid "If it instead requires Module::Build::Tiny, set" msgstr "Если вместо этого требуется Module::Build::Tiny, установите" #. type: delimited block . 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:1452 #, no-wrap msgid "" "USES=\t\tperl5\n" "USE_PERL5=\tmodbuildtiny\n" msgstr "" "USES=\t\tperl5\n" "USE_PERL5=\tmodbuildtiny\n" #. type: Title == #: documentation/content/en/books/porters-handbook/special/_index.adoc:1457 #, no-wrap msgid "Using X11" msgstr "Использование X11" #. type: Title === #: documentation/content/en/books/porters-handbook/special/_index.adoc:1460 #, no-wrap msgid "X.Org Components" msgstr "Компоненты X.Org" #. type: delimited block = 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:1465 msgid "" "The X11 implementation available in The Ports Collection is X.Org. If the " "application depends on X components, add `USES= xorg` and set `USE_XORG` to " "the list of required components. A full list can be found in crossref:" "uses[uses-xorg,`xorg`]." msgstr "" "Реализация X11, доступная в Коллекции портов, — это X.Org. Если приложение " "зависит от компонентов X, добавьте `USES= xorg` и укажите необходимые " "компоненты в `USE_XORG`. Полный список можно найти в crossref:uses[uses-xorg," "`xorg`]." #. type: delimited block = 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:1470 msgid "" "The Mesa Project is an effort to provide free OpenGL implementation. To " "specify a dependency on various components of this project, use `USES= gl` " "and `USE_GL`. See crossref:uses[uses-gl,`gl`] for a full list of available " "components. For backwards compatibility, the value of `yes` maps to `glu`." msgstr "" "Проект Mesa — это инициатива по предоставлению свободной реализации OpenGL. " "Чтобы указать зависимость от различных компонентов этого проекта, " "используйте `USES=gl` и `USE_GL`. См. crossref:uses[uses-gl,`gl`] для " "полного списка доступных компонентов. Для обратной совместимости значение " "`yes` соответствует `glu`." #. type: Block title #: documentation/content/en/books/porters-handbook/special/_index.adoc:1472 #, no-wrap msgid "`USE_XORG` Example" msgstr "Пример `USE_XORG`" #. type: delimited block . 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:1480 #, no-wrap msgid "" "USES=\t\tgl xorg\n" "USE_GL=\t\tglu\n" "USE_XORG=\txrender xft xkbfile xt xaw\n" msgstr "" "USES=\t\tgl xorg\n" "USE_GL=\t\tglu\n" "USE_XORG=\txrender xft xkbfile xt xaw\n" #. type: Block title #: documentation/content/en/books/porters-handbook/special/_index.adoc:1485 #, no-wrap msgid "Variables for Ports That Use X" msgstr "Переменные для портов, использующих X" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1489 #, no-wrap msgid "`USES= imake`" msgstr "`USES= imake`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1491 #, no-wrap msgid "The port uses `imake`." msgstr "Порт использует `imake`." #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1492 #, no-wrap msgid "`XMKMF`" msgstr "`XMKMF`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1493 #, no-wrap msgid "Set to the path of `xmkmf` if not in the `PATH`. Defaults to `xmkmf -a`." msgstr "Установить путь к `xmkmf`, если он отсутствует в `PATH`. По умолчанию: `xmkmf -a`." #. type: Block title #: documentation/content/en/books/porters-handbook/special/_index.adoc:1496 #, no-wrap msgid "Using X11-Related Variables" msgstr "Использование переменных, связанных с X11" #. type: delimited block . 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:1504 #, no-wrap msgid "" "# Use some X11 libraries\n" "USES=\t\txorg\n" "USE_XORG=\tx11 xpm\n" msgstr "" "# Use some X11 libraries\n" "USES=\t\txorg\n" "USE_XORG=\tx11 xpm\n" #. type: Title === #: documentation/content/en/books/porters-handbook/special/_index.adoc:1509 #, no-wrap msgid "Ports That Require Motif" msgstr "Порты, требующие Motif" #. type: delimited block = 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:1515 msgid "" "If the port requires a Motif library, define `USES= motif` in the [." "filename]#Makefile#. Default Motif implementation is package:x11-toolkits/" "open-motif[]. Users can choose package:x11-toolkits/lesstif[] instead by " "setting `WANT_LESSTIF` in their [.filename]#make.conf#. Similarly package:" "x11-toolkits/open-motif-devel[] can be chosen by setting " "`WANT_OPEN_MOTIF_DEVEL` in [.filename]#make.conf#." msgstr "" "Если порт требует библиотеку Motif, определите `USES= motif` в [." "filename]#Makefile#. Реализация Motif по умолчанию — это package:x11-" "toolkits/open-motif[]. Пользователи могут выбрать package:x11-toolkits/" "lesstif[] вместо этого, установив `WANT_LESSTIF` в своём [.filename]#make." "conf#. Аналогично package:x11-toolkits/open-motif-devel[] можно выбрать, " "установив `WANT_OPEN_MOTIF_DEVEL` в [.filename]#make.conf#." #. type: delimited block = 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:1518 msgid "" "`MOTIFLIB` will be set by [.filename]#motif.mk# to reference the appropriate " "Motif library. Please patch the source of the port to use `${MOTIFLIB}` " "wherever the Motif library is referenced in the original [." "filename]#Makefile# or [.filename]#Imakefile#." msgstr "" "`MOTIFLIB` будет установлен в файле [.filename]#motif.mk# для ссылки на " "соответствующую библиотеку Motif. Пожалуйста, исправьте исходный код порта, " "чтобы использовать `${MOTIFLIB}` везде, где библиотека Motif упоминается в " "оригинальном [.filename]#Makefile# или [.filename]#Imakefile#." #. type: delimited block = 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:1520 msgid "There are two common cases:" msgstr "Есть два распространённых случая:" #. type: delimited block = 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:1522 msgid "" "If the port refers to the Motif library as `-lXm` in its [." "filename]#Makefile# or [.filename]#Imakefile#, substitute `${MOTIFLIB}` for " "it." msgstr "" "Если порт ссылается на библиотеку Motif как `-lXm` в своём [." "filename]#Makefile# или [.filename]#Imakefile#, замените это на `${MOTIFLIB}" "`." #. type: delimited block = 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:1523 msgid "" "If the port uses `XmClientLibs` in its [.filename]#Imakefile#, change it to `" "${MOTIFLIB} ${XTOOLLIB} ${XLIB}`." msgstr "" "Если порт использует `XmClientLibs` в своём [.filename]#Imakefile#, замените " "это на `${MOTIFLIB} ${XTOOLLIB} ${XLIB}`." #. type: delimited block = 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:1525 msgid "" "Note that `MOTIFLIB` (usually) expands to `-L/usr/local/lib -lXm -lXp` or `/" "usr/local/lib/libXm.a`, so there is no need to add `-L` or `-l` in front." msgstr "" "Обратите внимание, что `MOTIFLIB` (обычно) раскрывается в `-L/usr/local/lib -" "lXm -lXp` или `/usr/local/lib/libXm.a`, поэтому нет необходимости добавлять " "`-L` или `-l` перед этим." #. type: Title === #: documentation/content/en/books/porters-handbook/special/_index.adoc:1527 #, no-wrap msgid "X11 Fonts" msgstr "Шрифты X11" #. type: delimited block = 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:1530 msgid "" "If the port installs fonts for the X Window System, put them in [." "filename]#LOCALBASE/lib/X11/fonts/local#." msgstr "" "Если порт устанавливает шрифты для X Window System, поместите их в [." "filename]#LOCALBASE/lib/X11/fonts/local#." #. type: Title === #: documentation/content/en/books/porters-handbook/special/_index.adoc:1532 #, no-wrap msgid "Getting a Fake `DISPLAY` with Xvfb" msgstr "Получение поддельного `DISPLAY` с помощью Xvfb" #. type: delimited block = 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:1539 msgid "" "Some applications require a working X11 display for compilation to succeed. " "This poses a problem for machines that operate headless. When this variable " "is used, the build infrastructure will start the virtual framebuffer X " "server. The working `DISPLAY` is then passed to the build. See crossref:" "uses[uses-display,`USES=display`] for the possible arguments." msgstr "" "Некоторые приложения требуют рабочего дисплея X11 для успешной компиляции. " "Это создаёт проблему для машин, работающих без монитора. При использовании " "этой переменной инфраструктура сборки запустит виртуальный X-сервер с " "буфером кадров. Рабочий `DISPLAY` затем передаётся в процесс сборки. См. " "crossref:uses[uses-display,`USES=display`] для возможных аргументов." #. type: delimited block . 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:1543 #, no-wrap msgid "USES=\tdisplay\n" msgstr "USES=\tdisplay\n" #. type: Title === #: documentation/content/en/books/porters-handbook/special/_index.adoc:1547 #, no-wrap msgid "Desktop Entries" msgstr "Desktop Entries (пункты рабочего стола)" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:1553 msgid "" "Desktop entries (https://standards.freedesktop.org/desktop-entry-spec/latest/" "[a Freedesktop standard]) provide a way to automatically adjust desktop " "features when a new program is installed, without requiring user " "intervention. For example, newly-installed programs automatically appear in " "the application menus of compatible desktop environments. Desktop entries " "originated in the GNOME desktop environment, but are now a standard and also " "work with KDE and Xfce. This bit of automation provides a real benefit to " "the user, and desktop entries are encouraged for applications which can be " "used in a desktop environment." msgstr "" "Desktop entries (https://standards.freedesktop.org/desktop-entry-spec/latest/" "[стандарт Freedesktop]) предоставляют способ автоматической настройки " "функций рабочего стола при установке новой программы без вмешательства " "пользователя. Например, вновь установленные программы автоматически " "появляются в меню приложений совместимых сред рабочего стола. Desktop " "entries появились в среде GNOME, но теперь стали стандартом и также работают " "с KDE и Xfce. Эта автоматизация приносит реальную пользу пользователю, " "поэтому Desktop entries рекомендуются для приложений, которые могут " "использоваться в среде рабочего стола." #. type: Title ==== #: documentation/content/en/books/porters-handbook/special/_index.adoc:1555 #, no-wrap msgid "Using Predefined [.filename]#.desktop# Files" msgstr "Использование предопределённых файлов [.filename]#.desktop#" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:1559 msgid "" "Ports that include predefined [.filename]#*.desktop# must include those " "files in [.filename]#pkg-plist# and install them in the [.filename]#" "$LOCALBASE/share/applications# directory. The crossref:makefiles[install-" "macros,`INSTALL_DATA` macro] is useful for installing these files." msgstr "" "Порты, включающие предопределённые файлы [.filename]#*.desktop#, должны " "добавлять эти файлы в [.filename]#pkg-plist# и устанавливать их в каталог [." "filename]#$LOCALBASE/share/applications#. Для установки таких файлов " "полезен макрос crossref:makefiles[install-macros,`INSTALL_DATA`]." #. type: Title ==== #: documentation/content/en/books/porters-handbook/special/_index.adoc:1561 #, no-wrap msgid "Updating Desktop Database" msgstr "Обновление базы данных рабочего стола" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:1565 msgid "" "If a port has a MimeType entry in its [.filename]#portname.desktop#, the " "desktop database must be updated after install and deinstall. To do this, " "define `USES`= desktop-file-utils." msgstr "" "Если порт имеет запись MimeType в файле [.filename]#portname.desktop#, базу " "данных рабочего стола необходимо обновить после установки и удаления. Для " "этого определите `USES`= desktop-file-utils." #. type: Title ==== #: documentation/content/en/books/porters-handbook/special/_index.adoc:1567 #, no-wrap msgid "Creating Desktop Entries with `DESKTOP_ENTRIES`" msgstr "Создание Desktop Entries с помощью `DESKTOP_ENTRIES`" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:1572 msgid "" "Desktop entries can be easily created for applications by using " "`DESKTOP_ENTRIES`. A file named [.filename]#name.desktop# will be created, " "installed, and added to [.filename]#pkg-plist# automatically. Syntax is:" msgstr "" "Desktop Entries могут быть легко созданы для приложений с использованием " "`DESKTOP_ENTRIES`. Файл с именем [.filename]#name.desktop# будет создан, " "установлен и автоматически добавлен в [.filename]#pkg-plist#. Синтаксис " "следующий:" #. type: delimited block . 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:1576 #, no-wrap msgid "DESKTOP_ENTRIES=\t\"NAME\" \"COMMENT\" \"ICON\" \"COMMAND\" \"CATEGORY\" StartupNotify\n" msgstr "DESKTOP_ENTRIES=\t\"NAME\" \"COMMENT\" \"ICON\" \"COMMAND\" \"CATEGORY\" StartupNotify\n" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:1583 msgid "" "The list of possible categories is available on the https://standards." "freedesktop.org/menu-spec/latest/apa.html[Freedesktop website]. " "`StartupNotify` indicates whether the application is compatible with " "_startup notifications_. These are typically a graphic indicator like a " "clock that appear at the mouse pointer, menu, or panel to give the user an " "indication when a program is starting. A program that is compatible with " "startup notifications clears the indicator after it has started. Programs " "that are not compatible with startup notifications would never clear the " "indicator (potentially confusing and infuriating the user), and must have " "`StartupNotify` set to `false` so the indicator is not shown at all." msgstr "" "Список возможных категорий доступен на https://standards.freedesktop.org/" "menu-spec/latest/apa.html[сайте Freedesktop]. `StartupNotify` указывает, " "совместимо ли приложение с _уведомлениями о запуске_. Обычно это " "графический индикатор, например, часы, который появляется у указателя мыши, " "в меню или на панели, чтобы дать пользователю понять, что программа " "запускается. Программа, совместимая с уведомлениями о запуске, очищает " "индикатор после своего старта. Программы, не совместимые с уведомлениями о " "запуске, никогда не очищают индикатор (что может сбивать с толку и " "раздражать пользователя), и у них должен быть установлен параметр " "`StartupNotify` в значение `false`, чтобы индикатор вообще не отображался." #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:1585 msgid "Example:" msgstr "Пример:" #. type: delimited block . 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:1592 #, no-wrap msgid "" "DESKTOP_ENTRIES=\t\"ToME\" \"Roguelike game based on JRR Tolkien's work\" \\\n" "\t\t\t\"${DATADIR}/xtra/graf/tome-128.png\" \\\n" "\t\t\t\"tome -v -g\" \"Application;Game;RolePlaying;\" \\\n" "\t\t\tfalse\n" msgstr "" "DESKTOP_ENTRIES=\t\"ToME\" \"Roguelike game based on JRR Tolkien's work\" \\\n" "\t\t\t\"${DATADIR}/xtra/graf/tome-128.png\" \\\n" "\t\t\t\"tome -v -g\" \"Application;Game;RolePlaying;\" \\\n" "\t\t\tfalse\n" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:1597 msgid "" "`DESKTOP_ENTRIES` are installed in the directory pointed to by the " "`DESKTOPDIR` variable. `DESKTOPDIR` defaults to [.filename]#${PREFIX}/share/" "applications#" msgstr "" "`DESKTOP_ENTRIES` устанавливаются в каталог, указанный переменной " "`DESKTOPDIR`. По умолчанию `DESKTOPDIR` имеет значение [.filename]#${PREFIX}/" "share/applications#" #. type: Title == #: documentation/content/en/books/porters-handbook/special/_index.adoc:1600 #, no-wrap msgid "Using GNOME" msgstr "Использование GNOME" #. type: Title === #: documentation/content/en/books/porters-handbook/special/_index.adoc:1603 #: documentation/content/en/books/porters-handbook/special/_index.adoc:3772 #: documentation/content/en/books/porters-handbook/special/_index.adoc:4073 #: documentation/content/en/books/porters-handbook/special/_index.adoc:4289 #, no-wrap msgid "Introduction" msgstr "Введение" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:1607 msgid "" "This chapter explains the GNOME framework as used by ports. The framework " "can be loosely divided into the base components, GNOME desktop components, " "and a few special macros that simplify the work of port maintainers." msgstr "" "Эта глава объясняет фреймворк GNOME, используемый в портах. Фреймворк можно " "условно разделить на базовые компоненты, компоненты рабочего стола GNOME и " "несколько специальных макросов, упрощающих работу сопровождающих портов." #. type: Title === #: documentation/content/en/books/porters-handbook/special/_index.adoc:1609 #, no-wrap msgid "Using `USE_GNOME`" msgstr "Использование `USE_GNOME`" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:1617 msgid "" "Adding this variable to the port allows the use of the macros and components " "defined in [.filename]#bsd.gnome.mk#. The code in [.filename]#bsd.gnome.mk# " "adds the needed build-time, run-time or library dependencies or the handling " "of special files. GNOME applications under FreeBSD use the `USE_GNOME` " "infrastructure. Include all the needed components as a space-separated " "list. The `USE_GNOME` components are divided into these virtual lists: " "basic components, GNOME 3 components and legacy components. If the port " "needs only GTK3 libraries, this is the shortest way to define it:" msgstr "" "Добавление этой переменной в порт позволяет использовать макросы и " "компоненты, определённые в [.filename]#bsd.gnome.mk#. Код в [.filename]#bsd." "gnome.mk# добавляет необходимые зависимости для сборки, выполнения или " "библиотеки, а также обработку специальных файлов. Приложения GNOME в FreeBSD " "используют инфраструктуру `USE_GNOME`. Включите все необходимые компоненты в " "виде списка, разделённого пробелами. Компоненты `USE_GNOME` разделены на " "следующие виртуальные списки: основные компоненты, компоненты GNOME 3 и " "устаревшие компоненты. Если порту требуются только библиотеки GTK3, это " "кратчайший способ определить это:" #. type: delimited block . 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:1621 #, no-wrap msgid "USE_GNOME=\tgtk30\n" msgstr "USE_GNOME=\tgtk30\n" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:1625 msgid "" "`USE_GNOME` components automatically add the dependencies they need. Please " "see crossref:special[gnome-components, GNOME Components] for an exhaustive " "list of all `USE_GNOME` components and which other components they imply and " "their dependencies." msgstr "" "`USE_GNOME` компоненты автоматически добавляют необходимые им зависимости. " "Подробный список всех компонентов `USE_GNOME`, а также информацию о том, " "какие другие компоненты они подразумевают и их зависимости, можно найти в " "crossref:special[gnome-components, Компоненты GNOME]." #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:1628 msgid "" "Here is an example [.filename]#Makefile# for a GNOME port that uses many of " "the techniques outlined in this document. Please use it as a guide for " "creating new ports." msgstr "" "Вот пример [.filename]#Makefile# для порта GNOME, в котором используются " "многие методы, описанные в этом документе. Пожалуйста, используйте его в " "качестве руководства при создании новых портов." #. type: delimited block . 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:1635 #, no-wrap msgid "" "PORTNAME=\tregexxer\n" "DISTVERSION=\t0.10\n" "CATEGORIES=\tdevel textproc gnome\n" "MASTER_SITES=\tGNOME\n" msgstr "" "PORTNAME=\tregexxer\n" "DISTVERSION=\t0.10\n" "CATEGORIES=\tdevel textproc gnome\n" "MASTER_SITES=\tGNOME\n" #. type: delimited block . 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:1639 #, no-wrap msgid "" "MAINTAINER=\tkwm@FreeBSD.org\n" "COMMENT=\tInteractive tool for performing search and replace operations\n" "WWW=\t\thttp://regexxer.sourceforge.net/\n" msgstr "" "MAINTAINER=\tkwm@FreeBSD.org\n" "COMMENT=\tInteractive tool for performing search and replace operations\n" "WWW=\t\thttp://regexxer.sourceforge.net/\n" #. type: delimited block . 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:1643 #, no-wrap msgid "" "USES=\t\tgettext gmake localbase:ldflags pathfix pkgconfig tar:xz\n" "GNU_CONFIGURE=\tyes\n" "USE_GNOME=\tgnomeprefix intlhack gtksourceviewmm3\n" msgstr "" "USES=\t\tgettext gmake localbase:ldflags pathfix pkgconfig tar:xz\n" "GNU_CONFIGURE=\tyes\n" "USE_GNOME=\tgnomeprefix intlhack gtksourceviewmm3\n" #. type: delimited block . 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:1645 #, no-wrap msgid "GLIB_SCHEMAS=\torg.regexxer.gschema.xml\n" msgstr "GLIB_SCHEMAS=\torg.regexxer.gschema.xml\n" #. type: delimited block = 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:1653 msgid "" "The `USE_GNOME` macro without any arguments does not add any dependencies to " "the port. `USE_GNOME` cannot be set after [.filename]#bsd.port.pre.mk#." msgstr "" "Макрос `USE_GNOME` без аргументов не добавляет никаких зависимостей к порту. " "`USE_GNOME` не может быть установлен после [.filename]#bsd.port.pre.mk#." #. type: Title === #: documentation/content/en/books/porters-handbook/special/_index.adoc:1656 #, no-wrap msgid "Variables" msgstr "Переменные" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:1662 msgid "" "This section explains which macros are available and how they are used. " "Like they are used in the above example. The crossref:special[gnome-" "components, GNOME Components] has a more in-depth explanation. `USE_GNOME` " "has to be set for these macros to be of use." msgstr "" "Этот раздел объясняет, какие макросы доступны и как они используются. Как, " "например, в приведённом выше примере. В crossref:special[gnome-components, " "Компоненты GNOME] содержится более подробное объяснение. Для использования " "этих макросов необходимо установить `USE_GNOME`." #. type: Labeled list #: documentation/content/en/books/porters-handbook/special/_index.adoc:1663 #, no-wrap msgid "`GLIB_SCHEMAS`" msgstr "`GLIB_SCHEMAS`" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:1666 msgid "" "List of all the glib schema files the port installs. The macro will add the " "files to the port plist and handle the registration of these files on " "install and deinstall." msgstr "" "Список всех файлов схем glib, которые устанавливает порт. Макрос добавит " "файлы в plist порта и обработает регистрацию этих файлов при установке и " "удалении." #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:1671 msgid "" "The glib schema files are written in XML and end with the [." "filename]#gschema.xml# extension. They are installed in the [." "filename]#share/glib-2.0/schemas/# directory. These schema files contain " "all application config values with their default settings. The actual " "database used by the applications is built by glib-compile-schema, which is " "run by the `GLIB_SCHEMAS` macro." msgstr "" "Файлы схем glib написаны в XML и имеют расширение [.filename]#gschema.xml#. " "Они устанавливаются в каталог [.filename]#share/glib-2.0/schemas/#. Эти " "файлы схем содержат все настройки конфигурации приложений со значениями по " "умолчанию. Фактическая база данных, используемая приложениями, создаётся с " "помощью glib-compile-schema, которая запускается макросом `GLIB_SCHEMAS`." #. type: delimited block . 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:1675 #, no-wrap msgid "GLIB_SCHEMAS=foo.gschema.xml\n" msgstr "GLIB_SCHEMAS=foo.gschema.xml\n" #. type: delimited block = 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:1681 msgid "" "Do not add glib schemas to the [.filename]#pkg-plist#. If they are listed " "in [.filename]#pkg-plist#, they will not be registered and the applications " "might not work properly." msgstr "" "Не добавляйте схемы glib в файл [.filename]#pkg-plist#. Если они указаны в [." "filename]#pkg-plist#, они не будут зарегистрированы, и приложения могут " "работать некорректно." #. type: Labeled list #: documentation/content/en/books/porters-handbook/special/_index.adoc:1683 #, no-wrap msgid "`GCONF_SCHEMAS`" msgstr "`GCONF_SCHEMAS`" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:1686 msgid "" "List all the gconf schema files. The macro will add the schema files to the " "port plist and will handle their registration on install and deinstall." msgstr "" "Перечислите все файлы схем gconf. Макрос добавит файлы схем в plist порта и " "обеспечит их регистрацию при установке и удалении." #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:1691 msgid "" "GConf is the XML-based database that virtually all GNOME applications use " "for storing their settings. These files are installed into the [." "filename]#etc/gconf/schemas# directory. This database is defined by " "installed schema files that are used to generate [.filename]#%gconf.xml# key " "files. For each schema file installed by the port, there must be an entry " "in the [.filename]#Makefile#:" msgstr "" "GConf — это база данных на основе XML, которую используют практически все " "приложения GNOME для хранения своих настроек. Эти файлы устанавливаются в " "каталог [.filename]#etc/gconf/schemas#. Эта база данных определяется " "установленными файлами схем, которые используются для генерации ключевых " "файлов [.filename]#%gconf.xml#. Для каждого файла схемы, устанавливаемого " "портом, должна быть запись в [.filename]#Makefile#:" #. type: delimited block . 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:1695 #, no-wrap msgid "GCONF_SCHEMAS=my_app.schemas my_app2.schemas my_app3.schemas\n" msgstr "GCONF_SCHEMAS=my_app.schemas my_app2.schemas my_app3.schemas\n" #. type: delimited block = 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:1701 msgid "" "Gconf schemas are listed in the `GCONF_SCHEMAS` macro rather than [." "filename]#pkg-plist#. If they are listed in [.filename]#pkg-plist#, they " "will not be registered and the applications might not work properly." msgstr "" "Схемы Gconf перечислены в макросе `GCONF_SCHEMAS`, а не в файле [." "filename]#pkg-plist#. Если они указаны в [.filename]#pkg-plist#, они не " "будут зарегистрированы, и приложения могут работать некорректно." #. type: Labeled list #: documentation/content/en/books/porters-handbook/special/_index.adoc:1703 #, no-wrap msgid "`INSTALLS_OMF`" msgstr "`INSTALLS_OMF`" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:1707 msgid "" "Open Source Metadata Framework (OMF) files are commonly used by GNOME 2 " "applications. These files contain the application help file information, " "and require special processing by ScrollKeeper/rarian. To properly register " "OMF files when installing GNOME applications from packages, make sure that " "`omf` files are listed in `pkg-plist` and that the port [." "filename]#Makefile# has `INSTALLS_OMF` defined:" msgstr "" "Файлы Open Source Metadata Framework (OMF) часто используются приложениями " "GNOME 2. Эти файлы содержат информацию о файлах справки приложений и требуют " "специальной обработки с помощью ScrollKeeper/rarian. Для правильной " "регистрации файлов OMF при установке приложений GNOME из пакетов убедитесь, " "что файлы `omf` указаны в `pkg-plist` и что в [.filename]#Makefile# порта " "определено `INSTALLS_OMF`:" #. type: delimited block . 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:1711 #, no-wrap msgid "INSTALLS_OMF=yes\n" msgstr "INSTALLS_OMF=yes\n" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:1714 msgid "" "When set, [.filename]#bsd.gnome.mk# automatically scans [.filename]#pkg-" "plist# and adds appropriate `@exec` and `@unexec` directives for each [." "filename]#.omf# to track in the OMF registration database." msgstr "" "При установке [.filename]#bsd.gnome.mk# автоматически сканирует [." "filename]#pkg-plist# и добавляет соответствующие директивы `@exec` и " "`@unexec` для каждого файла [.filename]#.omf#, который необходимо " "отслеживать в базе данных регистрации OMF." #. type: Block title #: documentation/content/en/books/porters-handbook/special/_index.adoc:1716 #: documentation/content/en/books/porters-handbook/special/_index.adoc:1726 #, no-wrap msgid "GNOME Components" msgstr "Компоненты GNOME" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:1724 msgid "" "For further help with a GNOME port, look at some of the link:https://ports." "FreeBSD.org[existing ports] for examples. The link:https://www.FreeBSD.org/" "gnome/[FreeBSD GNOME page] has contact information if more help is needed. " "The components are divided into GNOME components that are currently in use " "and legacy components. If the component supports argument, they are listed " "between parenthesis in the description. The first is the default. \"Both\" " "is shown if the component defaults to adding to both build and run " "dependencies." msgstr "" "Для получения дополнительной помощи с портом GNOME, ознакомьтесь с " "некоторыми из link:https://ports.FreeBSD.org[существующих портов] в качестве " "примеров. На странице link:https://www.FreeBSD.org/gnome/[FreeBSD GNOME] " "указана контактная информация, если требуется дополнительная помощь. " "Компоненты разделены на используемые в настоящее время компоненты GNOME и " "устаревшие компоненты. Если компонент поддерживает аргументы, они " "перечислены в скобках в описании. Первый аргумент является значением по " "умолчанию. \"Both\" указывается, если компонент по умолчанию добавляется как " "в зависимости для сборки, так и для выполнения." #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1730 #: documentation/content/en/books/porters-handbook/special/_index.adoc:1899 #: documentation/content/en/books/porters-handbook/special/_index.adoc:1916 #: documentation/content/en/books/porters-handbook/special/_index.adoc:2085 #: documentation/content/en/books/porters-handbook/special/_index.adoc:3914 #, no-wrap msgid "Component" msgstr "Компонент" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1731 #: documentation/content/en/books/porters-handbook/special/_index.adoc:1917 #, no-wrap msgid "Associated program" msgstr "Связанная программа" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1734 #, no-wrap msgid "`atk`" msgstr "`atk`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1735 #, no-wrap msgid "accessibility/atk" msgstr "accessibility/atk" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1737 #, no-wrap msgid "Accessibility toolkit (ATK)" msgstr "Инструментарий доступности (ATK)" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1738 #, no-wrap msgid "`atkmm`" msgstr "`atkmm`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1739 #, no-wrap msgid "accessibility/atkmm" msgstr "accessibility/atkmm" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1741 #, no-wrap msgid "c++ bindings for atk" msgstr "C++ интерфейс для atk" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1742 #, no-wrap msgid "`cairo`" msgstr "`cairo`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1743 #, no-wrap msgid "graphics/cairo" msgstr "graphics/cairo" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1745 #, no-wrap msgid "Vector graphics library with cross-device output support" msgstr "Векторная графическая библиотека с поддержкой вывода на различные устройства" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1746 #, no-wrap msgid "`cairomm`" msgstr "`cairomm`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1747 #, no-wrap msgid "graphics/cairomm" msgstr "graphics/cairomm" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1749 #, no-wrap msgid "c++ bindings for cairo" msgstr "C++ интерфейс для cairo" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1750 #, no-wrap msgid "`dconf`" msgstr "`dconf`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1751 #, no-wrap msgid "devel/dconf" msgstr "devel/dconf" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1753 #, no-wrap msgid "Configuration database system (both, build, run)" msgstr "Система базы данных конфигурации (both, build, run)" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1754 #, no-wrap msgid "`evolutiondataserver3`" msgstr "`evolutiondataserver3`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1755 #, no-wrap msgid "databases/evolution-data-server" msgstr "databases/evolution-data-server" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1757 #, no-wrap msgid "Data backends for the Evolution integrated mail/PIM suite" msgstr "Бэкенды данных для интегрированного почтового клиента/PIM Evolution" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1758 #, no-wrap msgid "`gdkpixbuf2`" msgstr "`gdkpixbuf2`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1759 #, no-wrap msgid "graphics/gdk-pixbuf2" msgstr "graphics/gdk-pixbuf2" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1761 #: documentation/content/en/books/porters-handbook/special/_index.adoc:1943 #, no-wrap msgid "Graphics library for GTK+" msgstr "Графическая библиотека для GTK+" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1762 #, no-wrap msgid "`glib20`" msgstr "`glib20`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1763 #, no-wrap msgid "devel/glib20" msgstr "devel/glib20" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1765 #, no-wrap msgid "GNOME core library `glib20`" msgstr "Основная библиотека GNOME `glib20`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1766 #, no-wrap msgid "`glibmm`" msgstr "`glibmm`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1767 #, no-wrap msgid "devel/glibmm" msgstr "devel/glibmm" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1769 #, no-wrap msgid "c++ bindings for glib20" msgstr "C++ интерфейс для glib20" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1770 #, no-wrap msgid "`gnomecontrolcenter3`" msgstr "`gnomecontrolcenter3`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1771 #, no-wrap msgid "sysutils/gnome-control-center" msgstr "sysutils/gnome-control-center" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1773 #, no-wrap msgid "GNOME 3 Control Center" msgstr "Центр управления GNOME 3" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1774 #, no-wrap msgid "`gnomedesktop3`" msgstr "`gnomedesktop3`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1775 #, no-wrap msgid "x11/gnome-desktop" msgstr "x11/gnome-desktop" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1777 #, no-wrap msgid "GNOME 3 desktop UI library" msgstr "Библиотека пользовательского интерфейса рабочего стола GNOME 3" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1778 #, no-wrap msgid "`gsound`" msgstr "`gsound`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1779 #, no-wrap msgid "audio/gsound" msgstr "audio/gsound" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1781 #, no-wrap msgid "GObject library for playing system sounds (both, build, run)" msgstr "Библиотека GObject для воспроизведения системных звуков (both, build, run)" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1782 #, no-wrap msgid "`gtk-update-icon-cache`" msgstr "`gtk-update-icon-cache`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1783 #, no-wrap msgid "graphics/gtk-update-icon-cache" msgstr "graphics/gtk-update-icon-cache" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1785 #, no-wrap msgid "Gtk-update-icon-cache utility from the Gtk+ toolkit" msgstr "Утилита `gtk-update-icon-cache` из набора инструментов `Gtk+`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1786 #, no-wrap msgid "`gtk20`" msgstr "`gtk20`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1787 #, no-wrap msgid "x11-toolkits/gtk20" msgstr "x11-toolkits/gtk20" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1789 #, no-wrap msgid "Gtk+ 2 toolkit" msgstr "Набор инструментов Gtk+ 2" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1790 #, no-wrap msgid "`gtk30`" msgstr "`gtk30`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1791 #, no-wrap msgid "x11-toolkits/gtk30" msgstr "x11-toolkits/gtk30" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1793 #, no-wrap msgid "Gtk+ 3 toolkit" msgstr "Набор инструментов Gtk+ 3" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1794 #, no-wrap msgid "`gtkmm20`" msgstr "`gtkmm20`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1795 #, no-wrap msgid "x11-toolkits/gtkmm20" msgstr "x11-toolkits/gtkmm20" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1797 #, no-wrap msgid "c++ bindings 2.0 for the gtk20 toolkit" msgstr "C++ интерфейс 2.0 для инструментария gtk20" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1798 #, no-wrap msgid "`gtkmm24`" msgstr "`gtkmm24`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1799 #, no-wrap msgid "x11-toolkits/gtkmm24" msgstr "x11-toolkits/gtkmm24" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1801 #, no-wrap msgid "c++ bindings 2.4 for the gtk20 toolkit" msgstr "C++ интерфейс 2.4 для инструментария gtk20" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1802 #, no-wrap msgid "`gtkmm30`" msgstr "`gtkmm30`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1803 #, no-wrap msgid "x11-toolkits/gtkmm30" msgstr "x11-toolkits/gtkmm30" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1805 #, no-wrap msgid "c++ bindings 3.0 for the gtk30 toolkit" msgstr "C++ интерфейс 3.0 для набора инструментов gtk30" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1806 #, no-wrap msgid "`gtksourceview2`" msgstr "`gtksourceview2`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1807 #, no-wrap msgid "x11-toolkits/gtksourceview2" msgstr "x11-toolkits/gtksourceview2" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1809 #: documentation/content/en/books/porters-handbook/special/_index.adoc:1987 #, no-wrap msgid "Widget that adds syntax highlighting to GtkTextView" msgstr "Виджет, добавляющий подсветку синтаксиса в GtkTextView" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1810 #, no-wrap msgid "`gtksourceview3`" msgstr "`gtksourceview3`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1811 #, no-wrap msgid "x11-toolkits/gtksourceview3" msgstr "x11-toolkits/gtksourceview3" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1813 #, no-wrap msgid "Text widget that adds syntax highlighting to the GtkTextView widget" msgstr "Текстовая виджет, добавляющая подсветку синтаксиса к виджету GtkTextView" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1814 #, no-wrap msgid "`gtksourceviewmm3`" msgstr "`gtksourceviewmm3`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1815 #, no-wrap msgid "x11-toolkits/gtksourceviewmm3" msgstr "x11-toolkits/gtksourceviewmm3" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1817 #, no-wrap msgid "c++ bindings for the gtksourceview3 library" msgstr "C++ интерфейс для библиотеки gtksourceview3" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1818 #, no-wrap msgid "`gvfs`" msgstr "`gvfs`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1819 #, no-wrap msgid "devel/gvfs" msgstr "devel/gvfs" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1821 #, no-wrap msgid "GNOME virtual file system" msgstr "Виртуальная файловая система GNOME" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1822 #, no-wrap msgid "`intltool`" msgstr "`intltool`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1823 #, no-wrap msgid "textproc/intltool" msgstr "textproc/intltool" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1825 #, no-wrap msgid "Tool for internationalization (also see intlhack)" msgstr "Инструмент для интернационализации (см. также intlhack)" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1826 #, no-wrap msgid "`introspection`" msgstr "`introspection`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1827 #, no-wrap msgid "devel/gobject-introspection" msgstr "devel/gobject-introspection" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1829 #, no-wrap msgid "Basic introspection bindings and tools to generate introspection bindings. Most of the time :build is enough, :both/:run is only need for applications that use introspection bindings. (both, build, run)" msgstr "Базовые привязки (биндинги) интроспекции и инструменты для генерации привязок интроспекции. В большинстве случаев достаточно `:build`, `:both`/`:run` нужны только для приложений, использующих привязки интроспекции. (both, build, run)" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1830 #, no-wrap msgid "`libgda5`" msgstr "`libgda5`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1831 #, no-wrap msgid "databases/libgda5" msgstr "databases/libgda5" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1833 #: documentation/content/en/books/porters-handbook/special/_index.adoc:2003 #, no-wrap msgid "Provides uniform access to different kinds of data sources" msgstr "Обеспечивает единообразный доступ к различным типам источников данных" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1834 #, no-wrap msgid "`libgda5-ui`" msgstr "`libgda5-ui`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1835 #, no-wrap msgid "databases/libgda5-ui" msgstr "databases/libgda5-ui" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1837 #, no-wrap msgid "UI library from the libgda5 library" msgstr "Библиотека пользовательского интерфейса из библиотеки libgda5" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1838 #, no-wrap msgid "`libgdamm5`" msgstr "`libgdamm5`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1839 #, no-wrap msgid "databases/libgdamm5" msgstr "databases/libgdamm5" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1841 #, no-wrap msgid "c++ bindings for the libgda5 library" msgstr "привязки C++ для библиотеки libgda5" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1842 #, no-wrap msgid "`libgsf`" msgstr "`libgsf`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1843 #, no-wrap msgid "devel/libgsf" msgstr "devel/libgsf" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1845 #, no-wrap msgid "Extensible I/O abstraction for dealing with structured file formats" msgstr "Расширяемая абстракция ввода-вывода для работы со структурированными форматами файлов" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1846 #, no-wrap msgid "`librsvg2`" msgstr "`librsvg2`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1847 #, no-wrap msgid "graphics/librsvg2" msgstr "graphics/librsvg2" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1849 #, no-wrap msgid "Library for parsing and rendering SVG vector-graphic files" msgstr "Библиотека для разбора и отображения SVG-файлов векторной графики" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1850 #, no-wrap msgid "`libsigc++20`" msgstr "`libsigc++20`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1851 #, no-wrap msgid "devel/libsigc++20" msgstr "devel/libsigc++20" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1853 #: documentation/content/en/books/porters-handbook/special/_index.adoc:2047 #, no-wrap msgid "Callback Framework for C++" msgstr "Фреймворк обратных вызовов для C++" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1854 #, no-wrap msgid "`libxml++26`" msgstr "`libxml++26`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1855 #, no-wrap msgid "textproc/libxml++26" msgstr "textproc/libxml++26" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1857 #, no-wrap msgid "c++ bindings for the libxml2 library" msgstr "C++ привязки для библиотеки libxml2" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1858 #, no-wrap msgid "`libxml2`" msgstr "`libxml2`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1859 #, no-wrap msgid "textproc/libxml2" msgstr "textproc/libxml2" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1861 #, no-wrap msgid "XML parser library (both, build, run)" msgstr "Библиотека парсера XML (both, build, run)" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1862 #, no-wrap msgid "`libxslt`" msgstr "`libxslt`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1863 #, no-wrap msgid "textproc/libxslt" msgstr "textproc/libxslt" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1865 #, no-wrap msgid "XSLT C library (both, build, run)" msgstr "Библиотека XSLT (сборка, выполнение)" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1866 #, no-wrap msgid "`metacity`" msgstr "`metacity`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1867 #, no-wrap msgid "x11-wm/metacity" msgstr "x11-wm/metacity" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1869 #, no-wrap msgid "Window manager from GNOME" msgstr "Менеджер окон из GNOME" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1870 #, no-wrap msgid "`nautilus3`" msgstr "`nautilus3`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1871 #, no-wrap msgid "x11-fm/nautilus" msgstr "x11-fm/nautilus" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1873 #, no-wrap msgid "GNOME file manager" msgstr "GNOME файловый менеджер" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1874 #, no-wrap msgid "`pango`" msgstr "`pango`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1875 #, no-wrap msgid "x11-toolkits/pango" msgstr "x11-toolkits/pango" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1877 #, no-wrap msgid "Open-source framework for the layout and rendering of i18n text" msgstr "Открытый фреймворк для разметки и отображения интернационализированного текста" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1878 #, no-wrap msgid "`pangomm`" msgstr "`pangomm`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1879 #, no-wrap msgid "x11-toolkits/pangomm" msgstr "x11-toolkits/pangomm" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1881 #, no-wrap msgid "c++ bindings for the pango library" msgstr "C++ интерфейс для библиотеки pango" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1882 #, no-wrap msgid "`py3gobject3`" msgstr "`py3gobject3`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1883 #, no-wrap msgid "devel/py3-gobject3" msgstr "devel/py3-gobject3" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1885 #, no-wrap msgid "Python 3, GObject 3.0 bindings" msgstr "Python 3, интерфейс GObject 3.0" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1886 #, no-wrap msgid "`pygobject3`" msgstr "`pygobject3`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1887 #, no-wrap msgid "devel/py-gobject3" msgstr "devel/py-gobject3" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1889 #, no-wrap msgid "Python 2, GObject 3.0 bindings" msgstr "Python 2, интерфейс GObject 3.0" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1890 #, no-wrap msgid "`vte3`" msgstr "`vte3`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1891 #, no-wrap msgid "x11-toolkits/vte3" msgstr "x11-toolkits/vte3" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1892 #: documentation/content/en/books/porters-handbook/special/_index.adoc:2078 #, no-wrap msgid "Terminal widget with improved accessibility and I18N support" msgstr "Виджет терминала с улучшенной поддержкой доступности и интернационализации (I18N)" #. type: Block title #: documentation/content/en/books/porters-handbook/special/_index.adoc:1895 #, no-wrap msgid "GNOME Macro Components" msgstr "Компоненты макросов GNOME" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1902 #, no-wrap msgid "`gnomeprefix`" msgstr "`gnomeprefix`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1904 #, no-wrap msgid "Supply `configure` with some default locations." msgstr "Предоставляет `configure` некоторые стандартные расположения." #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1905 #, no-wrap msgid "`intlhack`" msgstr "`intlhack`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1907 #, no-wrap msgid "Same as intltool, but patches to make sure [.filename]#share/locale/# is used. Please only use when `intltool` alone is not enough." msgstr "То же, что и `intltool`, но с патчами для гарантии использования [.filename]#share/locale/#. Используйте только в случае, когда одного `intltool` недостаточно." #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1908 #, no-wrap msgid "`referencehack`" msgstr "`referencehack`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1909 #, no-wrap msgid "This macro is there to help splitting of the API or reference documentation into its own port." msgstr "Этот макрос предназначен для помощи в разделении API или справочной документации на собственный порт." #. type: Block title #: documentation/content/en/books/porters-handbook/special/_index.adoc:1912 #, no-wrap msgid "GNOME Legacy Components" msgstr "Компоненты GNOME Legacy" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1920 #, no-wrap msgid "`atspi`" msgstr "`atspi`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1921 #, no-wrap msgid "accessibility/at-spi" msgstr "accessibility/at-spi" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1923 #, no-wrap msgid "Assistive Technology Service Provider Interface" msgstr "Интерфейс поставщика услуг вспомогательных технологий (AT-SPI)" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1924 #, no-wrap msgid "`esound`" msgstr "`esound`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1925 #, no-wrap msgid "audio/esound" msgstr "audio/esound" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1927 #, no-wrap msgid "Enlightenment sound package" msgstr "Пакет звука Enlightenment" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1928 #, no-wrap msgid "`gal2`" msgstr "`gal2`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1929 #, no-wrap msgid "x11-toolkits/gal2" msgstr "x11-toolkits/gal2" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1931 #, no-wrap msgid "Collection of widgets taken from GNOME 2 gnumeric" msgstr "Коллекция виджетов, взятых из GNOME 2 gnumeric" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1932 #, no-wrap msgid "`gconf2`" msgstr "`gconf2`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1933 #, no-wrap msgid "devel/gconf2" msgstr "devel/gconf2" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1935 #, no-wrap msgid "Configuration database system for GNOME 2" msgstr "Система базы данных конфигурации для GNOME 2" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1936 #, no-wrap msgid "`gconfmm26`" msgstr "`gconfmm26`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1937 #, no-wrap msgid "devel/gconfmm26" msgstr "devel/gconfmm26" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1939 #, no-wrap msgid "c++ bindings for gconf2" msgstr "C++ привязки C++ для gconf2" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1940 #, no-wrap msgid "`gdkpixbuf`" msgstr "`gdkpixbuf`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1941 #, no-wrap msgid "graphics/gdk-pixbuf" msgstr "graphics/gdk-pixbuf" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1944 #, no-wrap msgid "`glib12`" msgstr "`glib12`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1945 #, no-wrap msgid "devel/glib12" msgstr "devel/glib12" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1947 #, no-wrap msgid "glib 1.2 core library" msgstr "Библиотека ядра glib 1.2" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1948 #, no-wrap msgid "`gnomedocutils`" msgstr "`gnomedocutils`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1949 #, no-wrap msgid "textproc/gnome-doc-utils" msgstr "textproc/gnome-doc-utils" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1951 #, no-wrap msgid "GNOME doc utils" msgstr "Утилиты документации GNOME" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1952 #, no-wrap msgid "`gnomemimedata`" msgstr "`gnomemimedata`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1953 #, no-wrap msgid "misc/gnome-mime-data" msgstr "misc/gnome-mime-data" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1955 #, no-wrap msgid "MIME and Application database for GNOME 2" msgstr "База данных MIME и приложений для GNOME 2" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1956 #, no-wrap msgid "`gnomesharp20`" msgstr "`gnomesharp20`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1957 #, no-wrap msgid "x11-toolkits/gnome-sharp20" msgstr "x11-toolkits/gnome-sharp20" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1959 #, no-wrap msgid "GNOME 2 interfaces for the .NET runtime" msgstr "Интерфейсы GNOME 2 для среды выполнения .NET" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1960 #, no-wrap msgid "`gnomespeech`" msgstr "`gnomespeech`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1961 #, no-wrap msgid "accessibility/gnome-speech" msgstr "accessibility/gnome-speech" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1963 #, no-wrap msgid "GNOME 2 text-to-speech API" msgstr "GNOME 2 API преобразования текста в речь" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1964 #, no-wrap msgid "`gnomevfs2`" msgstr "`gnomevfs2`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1965 #, no-wrap msgid "devel/gnome-vfs" msgstr "devel/gnome-vfs" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1967 #, no-wrap msgid "GNOME 2 Virtual File System" msgstr "Виртуальная файловая система GNOME 2" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1968 #, no-wrap msgid "`gtk12`" msgstr "`gtk12`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1969 #, no-wrap msgid "x11-toolkits/gtk12" msgstr "x11-toolkits/gtk12" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1971 #, no-wrap msgid "Gtk+ 1.2 toolkit" msgstr "Набор инструментов Gtk+ 1.2" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1972 #, no-wrap msgid "`gtkhtml3`" msgstr "`gtkhtml3`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1973 #, no-wrap msgid "www/gtkhtml3" msgstr "www/gtkhtml3" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1975 #: documentation/content/en/books/porters-handbook/special/_index.adoc:1979 #: documentation/content/en/books/porters-handbook/special/_index.adoc:2035 #, no-wrap msgid "Lightweight HTML rendering/printing/editing engine" msgstr "Облегченный движок для отображения/печати/редактирования HTML" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1976 #, no-wrap msgid "`gtkhtml4`" msgstr "`gtkhtml4`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1977 #, no-wrap msgid "www/gtkhtml4" msgstr "www/gtkhtml4" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1980 #, no-wrap msgid "`gtksharp20`" msgstr "`gtksharp20`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1981 #, no-wrap msgid "x11-toolkits/gtk-sharp20" msgstr "x11-toolkits/gtk-sharp20" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1983 #, no-wrap msgid "GTK+ and GNOME 2 interfaces for the .NET runtime" msgstr "Интерфейсы GTK+ и GNOME 2 для среды выполнения .NET" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1984 #, no-wrap msgid "`gtksourceview`" msgstr "`gtksourceview`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1985 #, no-wrap msgid "x11-toolkits/gtksourceview" msgstr "x11-toolkits/gtksourceview" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1988 #, no-wrap msgid "`libartgpl2`" msgstr "`libartgpl2`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1989 #, no-wrap msgid "graphics/libart_lgpl" msgstr "graphics/libart_lgpl" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1991 #, no-wrap msgid "Library for high-performance 2D graphics" msgstr "Библиотека для высокопроизводительной 2D графики" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1992 #, no-wrap msgid "`libbonobo`" msgstr "`libbonobo`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1993 #, no-wrap msgid "devel/libbonobo" msgstr "devel/libbonobo" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1995 #, no-wrap msgid "Component and compound document system for GNOME 2" msgstr "Система компонентов и составных документов для GNOME 2" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1996 #, no-wrap msgid "`libbonoboui`" msgstr "`libbonoboui`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1997 #, no-wrap msgid "x11-toolkits/libbonoboui" msgstr "x11-toolkits/libbonoboui" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:1999 #, no-wrap msgid "GUI frontend to the libbonobo component of GNOME 2" msgstr "Интерфейс для libbonobo в GNOME 2" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2000 #, no-wrap msgid "`libgda4`" msgstr "`libgda4`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2001 #, no-wrap msgid "databases/libgda4" msgstr "databases/libgda4" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2004 #, no-wrap msgid "`libglade2`" msgstr "`libglade2`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2005 #, no-wrap msgid "devel/libglade2" msgstr "devel/libglade2" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2007 #, no-wrap msgid "GNOME 2 glade library" msgstr "Библиотека glade для GNOME 2" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2008 #, no-wrap msgid "`libgnome`" msgstr "`libgnome`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2009 #, no-wrap msgid "x11/libgnome" msgstr "x11/libgnome" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2011 #, no-wrap msgid "Libraries for GNOME 2, a GNU desktop environment" msgstr "Библиотеки для GNOME 2, GNU окружения рабочего стола" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2012 #, no-wrap msgid "`libgnomecanvas`" msgstr "`libgnomecanvas`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2013 #, no-wrap msgid "graphics/libgnomecanvas" msgstr "graphics/libgnomecanvas" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2015 #, no-wrap msgid "Graphics library for GNOME 2" msgstr "Графическая библиотека для GNOME 2" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2016 #, no-wrap msgid "`libgnomekbd`" msgstr "`libgnomekbd`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2017 #, no-wrap msgid "x11/libgnomekbd" msgstr "x11/libgnomekbd" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2019 #, no-wrap msgid "GNOME 2 keyboard shared library" msgstr "Динамическая библиотека клавиатуры GNOME 2" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2020 #, no-wrap msgid "`libgnomeprint`" msgstr "`libgnomeprint`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2021 #, no-wrap msgid "print/libgnomeprint" msgstr "print/libgnomeprint" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2023 #: documentation/content/en/books/porters-handbook/special/_index.adoc:2027 #, no-wrap msgid "Gnome 2 print support library" msgstr "Библиотека поддержки печати Gnome 2" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2024 #, no-wrap msgid "`libgnomeprintui`" msgstr "`libgnomeprintui`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2025 #, no-wrap msgid "x11-toolkits/libgnomeprintui" msgstr "x11-toolkits/libgnomeprintui" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2028 #, no-wrap msgid "`libgnomeui`" msgstr "`libgnomeui`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2029 #, no-wrap msgid "x11-toolkits/libgnomeui" msgstr "x11-toolkits/libgnomeui" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2031 #, no-wrap msgid "Libraries for the GNOME 2 GUI, a GNU desktop environment" msgstr "Библиотеки для графического интерфейса GNOME 2, среды рабочего стола GNU" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2032 #, no-wrap msgid "`libgtkhtml`" msgstr "`libgtkhtml`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2033 #, no-wrap msgid "www/libgtkhtml" msgstr "www/libgtkhtml" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2036 #, no-wrap msgid "`libgtksourceviewmm`" msgstr "`libgtksourceviewmm`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2037 #, no-wrap msgid "x11-toolkits/libgtksourceviewmm" msgstr "x11-toolkits/libgtksourceviewmm" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2039 #, no-wrap msgid "c++ binding of GtkSourceView" msgstr "C++ интерфейс GtkSourceView" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2040 #, no-wrap msgid "`libidl`" msgstr "`libidl`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2041 #, no-wrap msgid "devel/libIDL" msgstr "devel/libIDL" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2043 #, no-wrap msgid "Library for creating trees of CORBA IDL file" msgstr "Библиотека для создания деревьев файлов CORBA IDL" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2044 #, no-wrap msgid "`libsigc++12`" msgstr "`libsigc++12`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2045 #, no-wrap msgid "devel/libsigc++12" msgstr "devel/libsigc++12" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2048 #, no-wrap msgid "`libwnck`" msgstr "`libwnck`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2049 #, no-wrap msgid "x11-toolkits/libwnck" msgstr "x11-toolkits/libwnck" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2051 #: documentation/content/en/books/porters-handbook/special/_index.adoc:2055 #, no-wrap msgid "Library used for writing pagers and taskslists" msgstr "Библиотека, используемая для написания пейджеров и списков задач" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2052 #, no-wrap msgid "`libwnck3`" msgstr "`libwnck3`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2053 #, no-wrap msgid "x11-toolkits/libwnck3" msgstr "x11-toolkits/libwnck3" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2056 #, no-wrap msgid "`orbit2`" msgstr "`orbit2`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2057 #, no-wrap msgid "devel/ORBit2" msgstr "devel/ORBit2" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2059 #, no-wrap msgid "High-performance CORBA ORB with support for the C language" msgstr "Высокопроизводительный CORBA ORB с поддержкой языка C" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2060 #, no-wrap msgid "`pygnome2`" msgstr "`pygnome2`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2061 #, no-wrap msgid "x11-toolkits/py-gnome2" msgstr "x11-toolkits/py-gnome2" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2063 #, no-wrap msgid "Python bindings for GNOME 2" msgstr "Интерфейс Python для GNOME 2" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2064 #, no-wrap msgid "`pygobject`" msgstr "`pygobject`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2065 #, no-wrap msgid "devel/py-gobject" msgstr "devel/py-gobject" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2067 #, no-wrap msgid "Python 2, GObject 2.0 bindings" msgstr "Python 2, интерфейс GObject 2.0" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2068 #, no-wrap msgid "`pygtk2`" msgstr "`pygtk2`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2069 #, no-wrap msgid "x11-toolkits/py-gtk2" msgstr "x11-toolkits/py-gtk2" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2071 #, no-wrap msgid "Set of Python bindings for GTK+" msgstr "Набор интерфейсов Python для GTK+" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2072 #, no-wrap msgid "`pygtksourceview`" msgstr "`pygtksourceview`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2073 #, no-wrap msgid "x11-toolkits/py-gtksourceview" msgstr "x11-toolkits/py-gtksourceview" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2075 #, no-wrap msgid "Python bindings for GtkSourceView 2" msgstr "Интерфейс Python для GtkSourceView 2" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2076 #, no-wrap msgid "`vte`" msgstr "`vte`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2077 #, no-wrap msgid "x11-toolkits/vte" msgstr "x11-toolkits/vte" #. type: Block title #: documentation/content/en/books/porters-handbook/special/_index.adoc:2081 #, no-wrap msgid "Deprecated Components: Do Not Use" msgstr "Устаревшие компоненты: не использовать" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2088 #, no-wrap msgid "`pangox-compat`" msgstr "`pangox-compat`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2089 #, no-wrap msgid "pangox-compat has been deprecated and split off from the pango package." msgstr "pangox-compat устарел и был отделён от пакета pango." #. type: Title == #: documentation/content/en/books/porters-handbook/special/_index.adoc:2092 #, no-wrap msgid "Using Qt" msgstr "Использование Qt" #. type: delimited block = 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:2097 msgid "" "For ports that are part of Qt itself, see crossref:uses[uses-qt-dist,`qt-" "dist`]." msgstr "" "Для портов, которые являются частью самого Qt, см. crossref:uses[uses-qt-" "dist,`qt-dist`]." #. type: Title === #: documentation/content/en/books/porters-handbook/special/_index.adoc:2100 #, no-wrap msgid "Ports That Require Qt" msgstr "Порты, требующие Qt" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:2105 msgid "" "The Ports Collection provides support for Qt 5 and Qt 6 with `USES+=qt:5` " "and `USES+=qt:6` respectively. Set `USE_QT` to the list of required Qt " "components (libraries, tools, plugins)." msgstr "" "Коллекция портов поддерживает Qt 5 и Qt 6 с помощью `USES+=qt:5` и `USES" "+=qt:6` соответственно. Установите `USE_QT` в список необходимых компонентов " "Qt (libraries, tools, plugins - библиотеки, инструменты, плагины)." #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:2107 msgid "" "The Qt framework exports a number of variables which can be used by ports, " "some of them listed below:" msgstr "" "Фреймворк Qt экспортирует ряд переменных, которые могут использоваться " "портами, некоторые из них перечислены ниже:" #. type: Block title #: documentation/content/en/books/porters-handbook/special/_index.adoc:2109 #, no-wrap msgid "Variables Provided to Ports That Use Qt" msgstr "Переменные, предоставляемые портам, использующим Qt" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2113 #, no-wrap msgid "`QMAKE`" msgstr "`QMAKE`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2115 #, no-wrap msgid "Full path to `qmake` binary." msgstr "Полный путь к исполняемому файлу `qmake`." #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2116 #, no-wrap msgid "`LRELEASE`" msgstr "`LRELEASE`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2118 #, no-wrap msgid "Full path to `lrelease` utility." msgstr "Полный путь к утилите `lrelease`." #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2119 #, no-wrap msgid "`MOC`" msgstr "`MOC`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2121 #, no-wrap msgid "Full path to `moc`." msgstr "Полный путь к `moc`." #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2122 #, no-wrap msgid "`RCC`" msgstr "`RCC`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2124 #, no-wrap msgid "Full path to `rcc`." msgstr "Полный путь к `rcc`." #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2125 #, no-wrap msgid "`UIC`" msgstr "`UIC`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2127 #, no-wrap msgid "Full path to `uic`." msgstr "Полный путь к `uic`." #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2128 #, no-wrap msgid "`QT_INCDIR`" msgstr "`QT_INCDIR`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2130 #, no-wrap msgid "Qt include directory." msgstr "Каталог включаемых файлов Qt." #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2131 #, no-wrap msgid "`QT_LIBDIR`" msgstr "`QT_LIBDIR`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2133 #, no-wrap msgid "Qt libraries path." msgstr "Путь к библиотекам Qt." #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2134 #, no-wrap msgid "`QT_PLUGINDIR`" msgstr "`QT_PLUGINDIR`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2135 #, no-wrap msgid "Qt plugins path." msgstr "Путь к плагинам Qt." #. type: Title === #: documentation/content/en/books/porters-handbook/special/_index.adoc:2138 #: documentation/content/en/books/porters-handbook/special/_index.adoc:3860 #, no-wrap msgid "Component Selection" msgstr "Выбор компонентов" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:2145 msgid "" "Individual Qt tool and library dependencies must be specified in `USE_QT`. " "Every component can be suffixed with `_build` or `_run`, the suffix " "indicating whether the dependency on the component is at buildtime or " "runtime. If unsuffixed, the component will be depended on at both build- " "and runtime. Usually, library components are specified unsuffixed, tool " "components are mostly specified with the `_build` suffix and plugin " "components are specified with the `_run` suffix. The most commonly used " "components are listed below (all available components are listed in " "`_USE_QT_ALL`, which is generated from `_USE_QT_COMMON` and " "`_USE_QT[56]_ONLY` in [.filename]#/usr/ports/Mk/Uses/qt.mk#):" msgstr "" "Отдельные зависимости инструментов и библиотек Qt должны быть указаны в " "`USE_QT`. Каждый компонент может иметь суффикс `_build` или `_run`, " "указывающий, требуется ли компонент во время сборки или выполнения. Если " "суффикс отсутствует, компонент будет требоваться как во время сборки, так и " "во время выполнения. Обычно компоненты библиотек указываются без суффикса, " "компоненты инструментов чаще всего указываются с суффиксом `_build`, а " "компоненты плагинов — с суффиксом `_run`. Наиболее часто используемые " "компоненты перечислены ниже (все доступные компоненты перечислены в " "`_USE_QT_ALL`, которая формируется из `_USE_QT_COMMON` и `_USE_QT[56]_ONLY` " "в [.filename]#/usr/ports/Mk/Uses/qt.mk#):" #. type: Block title #: documentation/content/en/books/porters-handbook/special/_index.adoc:2147 #, no-wrap msgid "Available Qt Library Components" msgstr "Доступные компоненты библиотеки Qt" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2151 #: documentation/content/en/books/porters-handbook/special/_index.adoc:2395 #: documentation/content/en/books/porters-handbook/special/_index.adoc:2412 #: documentation/content/en/books/porters-handbook/special/_index.adoc:2545 #: documentation/content/en/books/porters-handbook/special/_index.adoc:3125 #: documentation/content/en/books/porters-handbook/special/_index.adoc:3850 #: documentation/content/en/books/porters-handbook/special/_index.adoc:3870 #: documentation/content/en/books/porters-handbook/special/_index.adoc:3895 #: documentation/content/en/books/porters-handbook/special/_index.adoc:3999 #: documentation/content/en/books/porters-handbook/special/_index.adoc:4169 #: documentation/content/en/books/porters-handbook/special/_index.adoc:4221 #: documentation/content/en/books/porters-handbook/special/_index.adoc:4313 #: documentation/content/en/books/porters-handbook/special/_index.adoc:4404 #: documentation/content/en/books/porters-handbook/special/_index.adoc:4466 #: documentation/content/en/books/porters-handbook/special/_index.adoc:4727 #, no-wrap msgid "Name" msgstr "Имя" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2154 #, no-wrap msgid "`3d`" msgstr "`3d`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2156 #, no-wrap msgid "Qt3D module" msgstr "Модуль Qt3D" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2157 #, no-wrap msgid "`5compat`" msgstr "`5compat`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2159 #, no-wrap msgid "Qt 5 compatibility module for Qt 6" msgstr "Модуль совместимости Qt 5 для Qt 6" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2160 #, no-wrap msgid "`assistant`" msgstr "`assistant`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2162 #, no-wrap msgid "Qt 5 documentation browser" msgstr "Браузер документации Qt 5" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2163 #, no-wrap msgid "`base`" msgstr "`base`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2165 #, no-wrap msgid "Qt 6 base module" msgstr "Модуль Qt 6 base" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2166 #, no-wrap msgid "`canvas3d`" msgstr "`canvas3d`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2168 #, no-wrap msgid "Qt canvas3d module" msgstr "Модуль Qt canvas3d" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2169 #, no-wrap msgid "`charts`" msgstr "`charts`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2171 #, no-wrap msgid "Qt 5 charts module" msgstr "Модуль Qt 5 charts" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2172 #, no-wrap msgid "`concurrent`" msgstr "`concurrent`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2174 #, no-wrap msgid "Qt multi-threading module" msgstr "Модуль многопоточности Qt" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2175 #, no-wrap msgid "`connectivity`" msgstr "`connectivity`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2177 #, no-wrap msgid "Qt connectivity (Bluetooth/NFC) module" msgstr "Модуль Qt для подключения (Bluetooth/NFC)" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2178 #, no-wrap msgid "`core`" msgstr "`core`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2180 #, no-wrap msgid "Qt core non-graphical module" msgstr "Ядро Qt, неграфический модуль" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2181 #, no-wrap msgid "`datavis3d`" msgstr "`datavis3d`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2183 #, no-wrap msgid "Qt 5 3D data visualization module" msgstr "Модуль визуализации 3D данных Qt 5" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2184 #, no-wrap msgid "`dbus`" msgstr "`dbus`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2186 #, no-wrap msgid "Qt D-Bus inter-process communication module" msgstr "Модуль межпроцессного взаимодействия Qt D-Bus" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2187 #, no-wrap msgid "`declarative`" msgstr "`declarative`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2189 #, no-wrap msgid "Qt declarative framework for dynamic user interfaces" msgstr "Декларативный фреймворк Qt для динамических пользовательских интерфейсов" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2190 #, no-wrap msgid "`designer`" msgstr "`designer`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2192 #, no-wrap msgid "Qt 5 graphical user interface designer" msgstr "Интерфейсный конструктор Qt 5 для графического пользовательского интерфейса" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2193 #, no-wrap msgid "`diag`" msgstr "`diag`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2195 #, no-wrap msgid "Tool for reporting diagnostic information about Qt and its environment" msgstr "Инструмент для сбора диагностической информации о Qt и его окружении" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2196 #, no-wrap msgid "`doc`" msgstr "`doc`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2198 #, no-wrap msgid "Qt 5 documentation" msgstr "Документация Qt 5" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2199 #, no-wrap msgid "`examples`" msgstr "`examples`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2201 #, no-wrap msgid "Qt 5 examples sourcecode" msgstr "Исходный код примеров Qt 5" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2202 #, no-wrap msgid "`gamepad`" msgstr "`gamepad`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2204 #, no-wrap msgid "Qt 5 Gamepad Module" msgstr "Модуль Qt 5 Gamepad" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2205 #, no-wrap msgid "`graphicaleffects`" msgstr "`graphicaleffects`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2207 #, no-wrap msgid "Qt Quick graphical effects" msgstr "Графические эффекты Qt Quick" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2208 #, no-wrap msgid "`gui`" msgstr "`gui`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2210 #, no-wrap msgid "Qt graphical user interface module" msgstr "Модуль графического интерфейса Qt" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2211 #, no-wrap msgid "`help`" msgstr "`help`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2213 #, no-wrap msgid "Qt online help integration module" msgstr "Модуль интеграции справки Qt в режиме онлайн" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2214 #, no-wrap msgid "`l10n`" msgstr "`l10n`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2216 #, no-wrap msgid "Qt localized messages" msgstr "Локализованные сообщения Qt" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2217 #, no-wrap msgid "`languageserver`" msgstr "`languageserver`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2219 #, no-wrap msgid "Qt 6 Language Server Protocol implementation" msgstr "Реализация протокола Language Server Protocol в Qt 6" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2220 #, no-wrap msgid "`linguist`" msgstr "`linguist`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2222 #, no-wrap msgid "Qt 5 translation tool" msgstr "Инструмент перевода Qt 5" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2223 #, no-wrap msgid "`location`" msgstr "`location`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2225 #, no-wrap msgid "Qt location module" msgstr "Модуль Qt Location" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2226 #, no-wrap msgid "`lottie`" msgstr "`lottie`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2228 #, no-wrap msgid "Qt 6 QML API for rendering graphics and animations" msgstr "Qt 6 QML API для отрисовки графики и анимаций" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2229 #, no-wrap msgid "`multimedia`" msgstr "`multimedia`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2231 #, no-wrap msgid "Qt audio, video, radio and camera support module" msgstr "Модуль поддержки аудио, видео, радио и камеры Qt" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2232 #, no-wrap msgid "`network`" msgstr "`network`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2234 #, no-wrap msgid "Qt network module" msgstr "Сетевой модуль Qt" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2235 #, no-wrap msgid "`networkauth`" msgstr "`networkauth`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2237 #, no-wrap msgid "Qt network auth module" msgstr "Модуль сетевой аутентификации Qt" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2238 #, no-wrap msgid "`opengl`" msgstr "`opengl`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2240 #, no-wrap msgid "Qt 5-compatible OpenGL support module" msgstr "Модуль поддержки OpenGL, совместимый с Qt 5" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2241 #, no-wrap msgid "`paths`" msgstr "`paths`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2243 #, no-wrap msgid "Command line client to QStandardPaths" msgstr "Клиент командной строки для QStandardPaths" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2244 #, no-wrap msgid "`phonon4`" msgstr "`phonon4`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2246 #, no-wrap msgid "KDE multimedia framework" msgstr "Мультимедийный фреймворк KDE" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2247 #, no-wrap msgid "`pixeltool`" msgstr "`pixeltool`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2249 #, no-wrap msgid "Qt 5 screen magnifier" msgstr "Увеличитель экрана Qt 5" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2250 #, no-wrap msgid "`plugininfo`" msgstr "`plugininfo`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2252 #, no-wrap msgid "Qt 5 plugin metadata dumper" msgstr "Дампер метаданных плагинов Qt 5" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2253 #, no-wrap msgid "`positioning`" msgstr "`positioning`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2255 #, no-wrap msgid "Qt 6 positioning API from sources such as satellite, wifi or text files." msgstr "Qt 6 API позиционирования из источников, таких как спутники, Wi-Fi или текстовые файлы." #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2256 #, no-wrap msgid "`printsupport`" msgstr "`printsupport`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2258 #, no-wrap msgid "Qt print support module" msgstr "Модуль поддержки печати Qt" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2259 #, no-wrap msgid "`qdbus`" msgstr "`qdbus`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2261 #, no-wrap msgid "Qt command-line interface to D-Bus" msgstr "Интерфейс командной строки Qt для D-Bus" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2262 #, no-wrap msgid "`qdbusviewer`" msgstr "`qdbusviewer`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2264 #, no-wrap msgid "Qt 5 graphical interface to D-Bus" msgstr "Графический интерфейс Qt 5 для D-Bus" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2265 #, no-wrap msgid "`qdoc`" msgstr "`qdoc`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2267 #, no-wrap msgid "Qt documentation generator" msgstr "Генератор документации Qt" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2268 #, no-wrap msgid "`qdoc-data`" msgstr "`qdoc-data`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2270 #, no-wrap msgid "QDoc configuration files" msgstr "Файлы конфигурации QDoc" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2271 #, no-wrap msgid "`qev`" msgstr "`qev`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2273 #, no-wrap msgid "Qt QWidget events introspection tool" msgstr "Инструмент для интроспекции событий Qt QWidget" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2274 #: documentation/content/en/books/porters-handbook/special/_index.adoc:2404 #, no-wrap msgid "`qmake`" msgstr "`qmake`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2276 #, no-wrap msgid "Qt Makefile generator" msgstr "Генератор Makefile Qt" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2277 #, no-wrap msgid "`quickcontrols`" msgstr "`quickcontrols`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2279 #: documentation/content/en/books/porters-handbook/special/_index.adoc:2282 #, no-wrap msgid "Set of controls for building complete interfaces in Qt Quick" msgstr "Набор элементов управления для создания полных интерфейсов в Qt Quick" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2280 #, no-wrap msgid "`quickcontrols2`" msgstr "`quickcontrols2`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2283 #, no-wrap msgid "`remoteobjects`" msgstr "`remoteobjects`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2285 #: documentation/content/en/books/porters-handbook/special/_index.adoc:2294 #, no-wrap msgid "Qt 5 SXCML module" msgstr "Модуль Qt 5 SXCML" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2286 #, no-wrap msgid "`script`" msgstr "`script`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2288 #, no-wrap msgid "Qt 4-compatible scripting module" msgstr "Совместимый с Qt 4 модуль для написания сценариев" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2289 #, no-wrap msgid "`scripttools`" msgstr "`scripttools`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2291 #, no-wrap msgid "Qt Script additional components" msgstr "Дополнительные компоненты Qt Script" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2292 #, no-wrap msgid "`scxml`" msgstr "`scxml`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2295 #, no-wrap msgid "`sensors`" msgstr "`sensors`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2297 #, no-wrap msgid "Qt sensors module" msgstr "Модуль Qt sensors" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2298 #, no-wrap msgid "`serialbus`" msgstr "`serialbus`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2300 #, no-wrap msgid "Qt functions to access industrial bus systems" msgstr "Функции Qt для доступа к промышленным шинным системам" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2301 #, no-wrap msgid "`serialport`" msgstr "`serialport`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2303 #, no-wrap msgid "Qt functions to access serial ports" msgstr "Функции Qt для доступа к последовательным портам" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2304 #, no-wrap msgid "`shadertools`" msgstr "`shadertools`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2306 #, no-wrap msgid "Qt 6 tools for the cross-platform Qt shader pipeline" msgstr "Инструменты Qt 6 для кроссплатформенного конвейера шейдеров Qt" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2307 #, no-wrap msgid "`speech`" msgstr "`speech`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2309 #, no-wrap msgid "Accessibility features for Qt5" msgstr "Доступность в Qt5" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2310 #, no-wrap msgid "`sql`" msgstr "`sql`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2312 #, no-wrap msgid "Qt SQL database integration module" msgstr "Модуль интеграции с базой данных Qt SQL" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2313 #, no-wrap msgid "`sql-ibase`" msgstr "`sql-ibase`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2315 #, no-wrap msgid "Qt InterBase/Firebird database plugin" msgstr "Плагин Qt баз данных InterBase/Firebird" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2316 #, no-wrap msgid "`sql-mysql`" msgstr "`sql-mysql`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2318 #, no-wrap msgid "Qt MySQL database plugin" msgstr "Плагин Qt базы данных MySQL" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2319 #, no-wrap msgid "`sql-odbc`" msgstr "`sql-odbc`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2321 #, no-wrap msgid "Qt Open Database Connectivity plugin" msgstr "Плагин Qt ODBC" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2322 #, no-wrap msgid "`sql-pgsql`" msgstr "`sql-pgsql`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2324 #, no-wrap msgid "Qt PostgreSQL database plugin" msgstr "Плагин Qt базы данных PostgreSQL" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2325 #, no-wrap msgid "`sql-sqlite2`" msgstr "`sql-sqlite2`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2327 #, no-wrap msgid "Qt SQLite 2 database plugin" msgstr "Плагин Qt базы данных SQLite 2" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2328 #, no-wrap msgid "`sql-sqlite3`" msgstr "`sql-sqlite3`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2330 #, no-wrap msgid "Qt SQLite 3 database plugin" msgstr "Плагин Qt базы данных SQLite 3" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2331 #, no-wrap msgid "`sql-tds`" msgstr "`sql-tds`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2333 #, no-wrap msgid "Qt TDS Database Connectivity database plugin" msgstr "Плагин Qt для подключение к базам данных по протоколу TDS" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2334 #: documentation/content/en/books/porters-handbook/special/_index.adoc:3929 #, no-wrap msgid "`svg`" msgstr "`svg`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2336 #, no-wrap msgid "Qt SVG support module" msgstr "Модуль поддержки SVG в Qt" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2337 #, no-wrap msgid "`testlib`" msgstr "`testlib`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2339 #, no-wrap msgid "Qt unit testing module" msgstr "Модуль тестирования Qt" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2340 #, no-wrap msgid "`tools`" msgstr "`tools`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2342 #, no-wrap msgid "Qt 6 assorted tools" msgstr "Различные инструменты Qt 6" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2343 #, no-wrap msgid "`translations`" msgstr "`translations`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2345 #, no-wrap msgid "Qt 6 translation module" msgstr "Модуль перевода Qt 6" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2346 #, no-wrap msgid "`uiplugin`" msgstr "`uiplugin`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2348 #, no-wrap msgid "Custom Qt widget plugin interface for Qt Designer" msgstr "Интерфейс плагина пользовательского виджета Qt для Qt Designer" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2349 #, no-wrap msgid "`uitools`" msgstr "`uitools`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2351 #, no-wrap msgid "Qt Designer UI forms support module" msgstr "Модуль поддержки форм пользовательского интерфейса Qt Designer" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2352 #, no-wrap msgid "`virtualkeyboard`" msgstr "`virtualkeyboard`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2354 #, no-wrap msgid "Qt 5 Virtual Keyboard Module" msgstr "Модуль виртуальной клавиатуры Qt 5" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2355 #: documentation/content/en/books/porters-handbook/special/_index.adoc:3079 #, no-wrap msgid "`wayland`" msgstr "`wayland`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2357 #, no-wrap msgid "Qt 5 wrapper for Wayland" msgstr "Оболочка Qt 5 для Wayland" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2358 #, no-wrap msgid "`webchannel`" msgstr "`webchannel`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2360 #, no-wrap msgid "Qt 5 library for integration of C++/QML with HTML/js clients" msgstr "Библиотека Qt 5 для интеграции C++/QML с клиентами на HTML/js" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2361 #, no-wrap msgid "`webengine`" msgstr "`webengine`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2363 #, no-wrap msgid "Qt 5 library to render web content" msgstr "Библиотека Qt 5 для отображения веб-содержимого" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2364 #, no-wrap msgid "`webkit`" msgstr "`webkit`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2366 #, no-wrap msgid "QtWebKit with a more modern WebKit code base" msgstr "QtWebKit с более современной кодовой базой WebKit" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2367 #, no-wrap msgid "`websockets`" msgstr "`websockets`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2369 #, no-wrap msgid "Qt implementation of WebSocket protocol" msgstr "Реализация протокола WebSocket на Qt" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2370 #, no-wrap msgid "`websockets-qml`" msgstr "`websockets-qml`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2372 #, no-wrap msgid "Qt implementation of WebSocket protocol (QML bindings)" msgstr "Реализация протокола WebSocket на Qt (привязки QML)" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2373 #, no-wrap msgid "`webview`" msgstr "`webview`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2375 #, no-wrap msgid "Qt component for displaying web content" msgstr "Компонент Qt для отображения веб-содержимого" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2376 #, no-wrap msgid "`widgets`" msgstr "`widgets`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2378 #, no-wrap msgid "Qt C++ widgets module" msgstr "Модуль виджетов Qt C++" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2379 #, no-wrap msgid "`x11extras`" msgstr "`x11extras`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2381 #, no-wrap msgid "Qt platform-specific features for X11-based systems" msgstr "Платформо-специфичные возможности Qt для систем на основе X11" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2382 #, no-wrap msgid "`xml`" msgstr "`xml`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2384 #, no-wrap msgid "Qt SAX and DOM implementations" msgstr "Реализации SAX и DOM в Qt" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2385 #, no-wrap msgid "`xmlpatterns`" msgstr "`xmlpatterns`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2386 #, no-wrap msgid "Qt support for XPath, XQuery, XSLT and XML Schema" msgstr "Поддержка Qt для XPath, XQuery, XSLT и XML Schema" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:2389 msgid "" "To determine the libraries an application depends on, run `ldd` on the main " "executable after a successful compilation." msgstr "" "Чтобы определить библиотеки, от которых зависит приложение, выполните `ldd` " "для основного исполняемого файла после успешной компиляции." #. type: Block title #: documentation/content/en/books/porters-handbook/special/_index.adoc:2391 #, no-wrap msgid "Available Qt Tool Components" msgstr "Доступные компоненты инструментов Qt" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2398 #: documentation/content/en/books/porters-handbook/special/_index.adoc:3128 #, no-wrap msgid "`buildtools`" msgstr "`buildtools`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2400 #, no-wrap msgid "build tools (`moc`, `rcc`), needed for almost every Qt application." msgstr "инструменты сборки (`moc`, `rcc`), необходимые практически для любого приложения Qt." #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2401 #, no-wrap msgid "`linguisttools`" msgstr "`linguisttools`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2403 #, no-wrap msgid "localization tools: `lrelease`, `lupdate`" msgstr "инструменты локализации: `lrelease`, `lupdate`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2405 #, no-wrap msgid "Makefile generator/build utility" msgstr "Генератор Makefile/утилита сборки" #. type: Block title #: documentation/content/en/books/porters-handbook/special/_index.adoc:2408 #, no-wrap msgid "Available Qt Plugin Components" msgstr "Доступные компоненты плагинов Qt" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2415 #, no-wrap msgid "`imageformats`" msgstr "`imageformats`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2416 #, no-wrap msgid "plugins for TGA, TIFF, and MNG image formats" msgstr "плагины для графических форматов TGA, TIFF и MNG" #. type: Block title #: documentation/content/en/books/porters-handbook/special/_index.adoc:2419 #, no-wrap msgid "Selecting Qt 5 Components" msgstr "Выбор компонентов Qt 5" #. type: delimited block = 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:2425 msgid "" "In this example, the ported application uses the Qt 5 graphical user " "interface library, the Qt 5 core library, all of the Qt 5 code generation " "tools and Qt 5's Makefile generator. Since the `gui` library implies a " "dependency on the core library, `core` does not need to be specified. The " "Qt 5 code generation tools `moc`, `uic` and `rcc`, as well as the Makefile " "generator `qmake` are only needed at buildtime, thus they are specified with " "the `_build` suffix:" msgstr "" "В этом примере портированное приложение использует библиотеку графического " "интерфейса Qt 5, основную библиотеку Qt 5, все инструменты генерации кода Qt " "5 и генератор Makefile Qt 5. Поскольку библиотека `gui` подразумевает " "зависимость от основной библиотеки, `core` не нужно указывать. Инструменты " "генерации кода Qt 5 `moc`, `uic` и `rcc`, а также генератор Makefile `qmake` " "требуются только во время сборки, поэтому они указаны с суффиксом `_build`:" #. type: delimited block . 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:2430 #, no-wrap msgid "" "USES=\tqt:5\n" "USE_QT=\tgui buildtools_build qmake_build\n" msgstr "" "USES=\tqt:5\n" "USE_QT=\tgui buildtools_build qmake_build\n" #. type: Title === #: documentation/content/en/books/porters-handbook/special/_index.adoc:2435 #, no-wrap msgid "Using `qmake`" msgstr "Использование `qmake`" #. type: delimited block = 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:2443 msgid "" "If the application provides a qmake project file ([.filename]#*.pro#), " "define `USES= qmake` along with `USE_QT`. `USES= qmake` already implies a " "build dependency on qmake, therefore the qmake component can be omitted from " "`USE_QT`. Similar to crossref:special[using-cmake,CMake], qmake supports " "out-of-source builds, which can be enabled by specifying the `outsource` " "argument (see crossref:special[using-qmake-example,`USES= qmake` example]). " "Also see crossref:special[using-qmake-arguments,Possible Arguments for `USES " "qmake`]." msgstr "" "Если приложение предоставляет файл проекта qmake ([.filename]#*.pro#), " "определите `USES= qmake` вместе с `USE_QT`. `USES= qmake` уже подразумевает " "зависимость сборки от qmake, поэтому компонент qmake может быть опущен в " "`USE_QT`. Подобно crossref:special[using-cmake,CMake], qmake поддерживает " "сборку вне исходного дерева, которую можно включить, указав аргумент " "`outsource` (см. crossref:special[using-qmake-example,пример `USES= " "qmake`]). Также см. crossref:special[using-qmake-arguments,Возможные " "аргументы для `USES qmake`]." #. type: Block title #: documentation/content/en/books/porters-handbook/special/_index.adoc:2445 #, no-wrap msgid "Possible Arguments for `USES= qmake`" msgstr "Возможные аргументы для `USES= qmake`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2452 #, no-wrap msgid "`no_configure`" msgstr "`no_configure`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2454 #, no-wrap msgid "Do not add the configure target. This is implied by `HAS_CONFIGURE=yes` and `GNU_CONFIGURE=yes`. It is required when the build only needs the environment setup from `USES= qmake`, but otherwise runs `qmake` on its own." msgstr "Не добавлять цель configure. Это подразумевается при `HAS_CONFIGURE=yes` и `GNU_CONFIGURE=yes`. Это требуется, когда сборке нужна только настройка окружения из `USES= qmake`, но в остальном она запускает `qmake` самостоятельно." #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2455 #, no-wrap msgid "`no_env`" msgstr "`no_env`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2457 #, no-wrap msgid "Suppress modification of the configure and make environments. It is only required when `qmake` is used to configure the software and the build fails to understand the environment setup by `USES= qmake`." msgstr "Подавить модификацию окружения configure и make. Это требуется только когда `qmake` используется для настройки программного обеспечения и сборка не понимает окружение, установленное `USES= qmake`." #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2458 #, no-wrap msgid "`norecursive`" msgstr "`norecursive`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2460 #, no-wrap msgid "Do not pass the `-recursive` argument to `qmake`." msgstr "Не передавать аргумент `-recursive` в `qmake`." #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2461 #, no-wrap msgid "`outsource`" msgstr "`outsource`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2462 #, no-wrap msgid "Perform an out-of-source build." msgstr "Выполнить сборку вне исходного кода." #. type: Block title #: documentation/content/en/books/porters-handbook/special/_index.adoc:2465 #, no-wrap msgid "Variables for Ports That Use `qmake`" msgstr "Переменные для портов, использующих `qmake`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2472 #, no-wrap msgid "`QMAKE_ARGS`" msgstr "`QMAKE_ARGS`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2474 #, no-wrap msgid "Port specific qmake flags to be passed to the `qmake` binary." msgstr "Специфичные для порта флаги qmake, передаваемые в бинарный файл `qmake`." #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2475 #, no-wrap msgid "`QMAKE_ENV`" msgstr "`QMAKE_ENV`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2477 #, no-wrap msgid "Environment variables to be set for the `qmake` binary. The default is `${CONFIGURE_ENV}`." msgstr "Переменные окружения, которые должны быть установлены для бинарного файла `qmake`. По умолчанию используется `${CONFIGURE_ENV}`." #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2478 #, no-wrap msgid "`QMAKE_SOURCE_PATH`" msgstr "`QMAKE_SOURCE_PATH`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2479 #, no-wrap msgid "Path to qmake project files ([.filename]#.pro#). The default is `${WRKSRC}` if an out-of-source build is requested, empty otherwise." msgstr "Путь к файлам проекта qmake ([.filename]#.pro#). По умолчанию используется `${WRKSRC}`, если запрошена сборка вне исходного кода, в противном случае оставляется пустым." #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:2482 msgid "When using `USES= qmake`, these settings are deployed:" msgstr "При использовании `USES= qmake` применяются следующие настройки:" #. type: delimited block . 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:2489 #, no-wrap msgid "" "CONFIGURE_ARGS+=\t--with-qt-includes=${QT_INCDIR} \\\n" "\t\t\t--with-qt-libraries=${QT_LIBDIR} \\\n" "\t\t\t--with-extra-libs=${LOCALBASE}/lib \\\n" "\t\t\t--with-extra-includes=${LOCALBASE}/include\n" msgstr "" "CONFIGURE_ARGS+=\t--with-qt-includes=${QT_INCDIR} \\\n" "\t\t\t--with-qt-libraries=${QT_LIBDIR} \\\n" "\t\t\t--with-extra-libs=${LOCALBASE}/lib \\\n" "\t\t\t--with-extra-includes=${LOCALBASE}/include\n" #. type: delimited block . 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:2493 #, no-wrap msgid "" "CONFIGURE_ENV+=\tQTDIR=\"${QT_PREFIX}\" QMAKE=\"${QMAKE}\" \\\n" "\t\tMOC=\"${MOC}\" RCC=\"${RCC}\" UIC=\"${UIC}\" \\\n" "\t\tQMAKESPEC=\"${QMAKESPEC}\"\n" msgstr "" "CONFIGURE_ENV+=\tQTDIR=\"${QT_PREFIX}\" QMAKE=\"${QMAKE}\" \\\n" "\t\tMOC=\"${MOC}\" RCC=\"${RCC}\" UIC=\"${UIC}\" \\\n" "\t\tQMAKESPEC=\"${QMAKESPEC}\"\n" #. type: delimited block . 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:2497 #, no-wrap msgid "" "PLIST_SUB+=\tQT_INCDIR=${QT_INCDIR_REL} \\\n" "\t\tQT_LIBDIR=${QT_LIBDIR_REL} \\\n" "\t\tQT_PLUGINDIR=${QT_PLUGINDIR_REL}\n" msgstr "" "PLIST_SUB+=\tQT_INCDIR=${QT_INCDIR_REL} \\\n" "\t\tQT_LIBDIR=${QT_LIBDIR_REL} \\\n" "\t\tQT_PLUGINDIR=${QT_PLUGINDIR_REL}\n" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:2501 msgid "" "Some configure scripts do not support the arguments above. To suppress " "modification of `CONFIGURE_ENV` and `CONFIGURE_ARGS`, set `USES= qmake:" "no_env`." msgstr "" "Некоторые скрипты configure не поддерживают указанные выше аргументы. Чтобы " "отключить изменение `CONFIGURE_ENV` и `CONFIGURE_ARGS`, установите `USES= " "qmake:no_env`." #. type: Block title #: documentation/content/en/books/porters-handbook/special/_index.adoc:2503 #, no-wrap msgid "`USES= qmake` Example" msgstr "Пример `USES= qmake`" #. type: delimited block = 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:2507 msgid "This snippet demonstrates the use of qmake for a Qt 5 port:" msgstr "Этот фрагмент демонстрирует использование qmake для порта Qt 5:" #. type: delimited block . 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:2512 #, no-wrap msgid "" "USES=\tqmake:outsource qt:5\n" "USE_QT=\tbuildtools_build\n" msgstr "" "USES=\tqmake:outsource qt:5\n" "USE_QT=\tbuildtools_build\n" #. type: delimited block = 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:2517 msgid "" "Qt applications are often written to be cross-platform and often X11/Unix is " "not the platform they are developed on, which in turn leads to certain loose " "ends, like:" msgstr "" "Приложения Qt часто разрабатываются как кроссплатформенные, и зачастую X11/" "Unix — не та платформа, на которой они создаются. Это, в свою очередь, " "приводит к определённым недоработкам, таким как:" #. type: delimited block = 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:2519 msgid "" "_Missing additional include paths._ Many applications come with system tray " "icon support, but neglect to look for includes and/or libraries in the X11 " "directories. To add directories to `qmake`'s include and library search " "paths via the command line, use:" msgstr "" "_Отсутствуют дополнительные пути для заголовочных файлов._ Многие приложения " "поддерживают значки в системном трее, но не учитывают пути для заголовочных " "файлов и/или библиотек в каталогах X11. Чтобы добавить каталоги в пути " "поиска заголовочных файлов и библиотек для `qmake` через командную строку, " "используйте:" #. type: delimited block . 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:2524 #, no-wrap msgid "" "QMAKE_ARGS+=\tINCLUDEPATH+=${LOCALBASE}/include \\\n" "\t\tLIBS+=-L${LOCALBASE}/lib\n" msgstr "" "QMAKE_ARGS+=\tINCLUDEPATH+=${LOCALBASE}/include \\\n" "\t\tLIBS+=-L${LOCALBASE}/lib\n" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:2527 msgid "" "_Bogus installation paths._ Sometimes data such as icons or .desktop files " "are by default installed into directories which are not scanned by XDG-" "compatible applications. package:editors/texmaker[] is an example for this - " "look at [.filename]#patch-texmaker.pro# in the [.filename]#files# directory " "of that port for a template on how to remedy this directly in the `qmake` " "project file." msgstr "" "_Некорректные пути установки._ Иногда данные, такие как иконки или файлы ." "desktop, по умолчанию устанавливаются в каталоги, которые не сканируются " "приложениями, совместимыми с XDG. Например, package:editors/texmaker[] — " "посмотрите на файл [.filename]#patch-texmaker.pro# в каталоге [." "filename]#files# этого порта, чтобы увидеть шаблон исправления этой проблемы " "напрямую в проектом файле `qmake`." #. type: Title == #: documentation/content/en/books/porters-handbook/special/_index.adoc:2529 #, no-wrap msgid "Using KDE" msgstr "Использование KDE" #. type: Title === #: documentation/content/en/books/porters-handbook/special/_index.adoc:2532 #, no-wrap msgid "KDE Variable Definitions" msgstr "Определения переменных KDE" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:2539 msgid "" "If the application depends on KDE, set `USES+=kde:5` and `USE_KDE` to the " "list of required components. `_build` and `_run` suffixes can be used to " "force components dependency type (for example, `baseapps_run`). If no " "suffix is set, a default dependency type will be used. To force both types, " "add the component twice with both suffixes (for example, `ecm_build " "ecm_run`). Available components are listed below (up-to-date components are " "also listed in [.filename]#/usr/ports/Mk/Uses/kde.mk#):" msgstr "" "Если приложение зависит от KDE, установите `USES+=kde:5` и `USE_KDE` в " "список необходимых компонентов. Суффиксы `_build` и `_run` можно " "использовать для принудительного указания типа зависимости компонентов " "(например, `baseapps_run`). Если суффикс не задан, будет использован тип " "зависимости по умолчанию. Чтобы принудительно задать оба типа, добавьте " "компонент дважды с обоими суффиксами (например, `ecm_build ecm_run`). " "Доступные компоненты перечислены ниже (актуальный список компонентов также " "приведён в [.filename]#/usr/ports/Mk/Uses/kde.mk#):" #. type: Block title #: documentation/content/en/books/porters-handbook/special/_index.adoc:2541 #, no-wrap msgid "Available KDE Components" msgstr "Доступные компоненты KDE" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2548 #, no-wrap msgid "`activities`" msgstr "`activities`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2550 #, no-wrap msgid "KF5 runtime and library to organize work in separate activities" msgstr "Среда выполнения и библиотека KF5 для организации работы в отдельных активностях" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2551 #, no-wrap msgid "`activities-stats`" msgstr "`activities-stats`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2553 #, no-wrap msgid "KF5 statistics for activities" msgstr "KF5 статистика для активностей" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2554 #, no-wrap msgid "`activitymanagerd`" msgstr "`activitymanagerd`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2556 #, no-wrap msgid "System service to manage user's activities, track the usage patterns" msgstr "Системный сервис для управления активностью пользователей, отслеживания шаблонов использования" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2557 #, no-wrap msgid "`akonadi`" msgstr "`akonadi`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2559 #, no-wrap msgid "Storage server for KDE-Pim" msgstr "Хранилище данных для KDE-Pim" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2560 #, no-wrap msgid "`akonadicalendar`" msgstr "`akonadicalendar`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2562 #, no-wrap msgid "Akonadi Calendar Integration" msgstr "Интеграция Akonadi с Календарем" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2563 #, no-wrap msgid "`akonadiconsole`" msgstr "`akonadiconsole`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2565 #, no-wrap msgid "Akonadi management and debugging console" msgstr "Консоль управления и отладки Akonadi" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2566 #, no-wrap msgid "`akonadicontacts`" msgstr "`akonadicontacts`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2568 #, no-wrap msgid "Libraries and daemons to implement Contact Management in Akonadi" msgstr "Библиотеки и демоны для реализации управления контактами в Akonadi" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2569 #, no-wrap msgid "`akonadiimportwizard`" msgstr "`akonadiimportwizard`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2571 #, no-wrap msgid "Import data from other mail clients to KMail" msgstr "Импорт данных из других почтовых клиентов в KMail" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2572 #, no-wrap msgid "`akonadimime`" msgstr "`akonadimime`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2574 #, no-wrap msgid "Libraries and daemons to implement basic email handling" msgstr "Библиотеки и демоны для реализации базовой обработки электронной почты" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2575 #, no-wrap msgid "`akonadinotes`" msgstr "`akonadinotes`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2577 #: documentation/content/en/books/porters-handbook/special/_index.adoc:2940 #, no-wrap msgid "KDE library for accessing mail storages in MBox format" msgstr "Библиотека KDE для доступа к хранилищам почты в формате MBox" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2578 #, no-wrap msgid "`akonadisearch`" msgstr "`akonadisearch`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2580 #, no-wrap msgid "Libraries and daemons to implement searching in Akonadi" msgstr "Библиотеки и демоны для реализации поиска в Akonadi" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2581 #, no-wrap msgid "`akregator`" msgstr "`akregator`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2583 #, no-wrap msgid "A Feed Reader by KDE" msgstr "Читатель лент от KDE" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2584 #, no-wrap msgid "`alarmcalendar`" msgstr "`alarmcalendar`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2586 #, no-wrap msgid "KDE API for KAlarm alarms" msgstr "KDE API для будильников KAlarm" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2587 #, no-wrap msgid "`apidox`" msgstr "`apidox`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2589 #, no-wrap msgid "KF5 API Documentation Tools" msgstr "Документация API KF5" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2590 #, no-wrap msgid "`archive`" msgstr "`archive`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2592 #, no-wrap msgid "KF5 library that provides classes for handling archive formats" msgstr "Библиотека KF5, предоставляющая классы для работы с форматами архивов" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2593 #, no-wrap msgid "`attica`" msgstr "`attica`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2595 #: documentation/content/en/books/porters-handbook/special/_index.adoc:2598 #, no-wrap msgid "Open Collaboration Services API library KDE5 version" msgstr "Библиотека API Open Collaboration Services, версия для KDE5" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2596 #, no-wrap msgid "`attica5`" msgstr "`attica5`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2599 #, no-wrap msgid "`auth`" msgstr "`auth`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2601 #, no-wrap msgid "KF5 abstraction to system policy and authentication features" msgstr "Абстракция KF5 для системной политики и функций аутентификации" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2602 #, no-wrap msgid "`baloo`" msgstr "`baloo`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2604 #: documentation/content/en/books/porters-handbook/special/_index.adoc:2610 #, no-wrap msgid "KF5 Framework for searching and managing user metadata" msgstr "KF5 Фреймворк для поиска и управления пользовательскими метаданными" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2605 #, no-wrap msgid "`baloo-widgets`" msgstr "`baloo-widgets`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2607 #, no-wrap msgid "BalooWidgets library" msgstr "Библиотека BalooWidgets" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2608 #, no-wrap msgid "`baloo5`" msgstr "`baloo5`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2611 #, no-wrap msgid "`blog`" msgstr "`blog`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2613 #, no-wrap msgid "KDE API for weblogging access" msgstr "KDE API для доступа к веб-логам" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2614 #, no-wrap msgid "`bookmarks`" msgstr "`bookmarks`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2616 #, no-wrap msgid "KF5 library for bookmarks and the XBEL format" msgstr "Библиотека KF5 для закладок и формата XBEL" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2617 #, no-wrap msgid "`breeze`" msgstr "`breeze`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2619 #, no-wrap msgid "Plasma5 artwork, styles and assets for the Breeze visual style" msgstr "Plasma5 artwork, стили и ресурсы для визуального стиля Breeze" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2620 #, no-wrap msgid "`breeze-gtk`" msgstr "`breeze-gtk`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2622 #, no-wrap msgid "Plasma5 Breeze visual style for Gtk" msgstr "Plasma5 Breeze визуальный стиль для Gtk" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2623 #, no-wrap msgid "`breeze-icons`" msgstr "`breeze-icons`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2625 #, no-wrap msgid "Breeze icon theme for KDE" msgstr "Тема значков Breeze для KDE" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2626 #, no-wrap msgid "`calendarcore`" msgstr "`calendarcore`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2628 #, no-wrap msgid "KDE calendar access library" msgstr "Библиотека доступа к календарю KDE" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2629 #, no-wrap msgid "`calendarsupport`" msgstr "`calendarsupport`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2631 #, no-wrap msgid "Calendar support libraries for KDEPim" msgstr "Библиотеки поддержки календарей для KDEPim" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2632 #, no-wrap msgid "`calendarutils`" msgstr "`calendarutils`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2634 #, no-wrap msgid "KDE utility and user interface functions for accessing calendar" msgstr "Утилита KDE и пользовательские функции интерфейса для доступа к календарю" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2635 #, no-wrap msgid "`codecs`" msgstr "`codecs`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2637 #, no-wrap msgid "KF5 library for string manipulation" msgstr "Библиотека KF5 для работы со строками" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2638 #, no-wrap msgid "`completion`" msgstr "`completion`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2640 #, no-wrap msgid "KF5 text completion helpers and widgets" msgstr "KF5 вспомогательные средства и виджеты автодополнения текста" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2641 #, no-wrap msgid "`config`" msgstr "`config`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2643 #: documentation/content/en/books/porters-handbook/special/_index.adoc:2646 #, no-wrap msgid "KF5 widgets for configuration dialogs" msgstr "Виджеты KF5 для диалогов настройки" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2644 #, no-wrap msgid "`configwidgets`" msgstr "`configwidgets`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2647 #, no-wrap msgid "`contacts`" msgstr "`contacts`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2649 #, no-wrap msgid "KDE api to manage contact information" msgstr "KDE API для управления контактной информацией" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2650 #, no-wrap msgid "`coreaddons`" msgstr "`coreaddons`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2652 #, no-wrap msgid "KF5 addons to QtCore" msgstr "KF5 аддоны для QtCore" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2653 #, no-wrap msgid "`crash`" msgstr "`crash`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2655 #, no-wrap msgid "KF5 library to handle crash analysis and bug report from apps" msgstr "Библиотека KF5 для обработки анализа сбоев и отчётов об ошибках в приложениях" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2656 #, no-wrap msgid "`dbusaddons`" msgstr "`dbusaddons`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2658 #: documentation/content/en/books/porters-handbook/special/_index.adoc:3066 #, no-wrap msgid "KF5 addons to QtDBus" msgstr "KF5 дополнения к QtDBus" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2659 #, no-wrap msgid "`decoration`" msgstr "`decoration`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2661 #, no-wrap msgid "Plasma5 library to create window decorations" msgstr "Библиотека Plasma5 для создания оформления окон" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2662 #, no-wrap msgid "`designerplugin`" msgstr "`designerplugin`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2664 #, no-wrap msgid "KF5 integration of Frameworks widgets in Qt Designer/Creator" msgstr "Интеграция KF5 виджетов Frameworks в Qt Designer/Creator" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2665 #, no-wrap msgid "`discover`" msgstr "`discover`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2667 #, no-wrap msgid "Plasma5 package management tools" msgstr "Инструменты управления пакетами Plasma5" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2668 #, no-wrap msgid "`dnssd`" msgstr "`dnssd`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2670 #, no-wrap msgid "KF5 abstraction to system DNSSD features" msgstr "Абстракция KF5 для системных функций DNSSD" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2671 #, no-wrap msgid "`doctools`" msgstr "`doctools`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2673 #, no-wrap msgid "KF5 documentation generation from docbook" msgstr "Генерация документации KF5 из docbook" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2674 #, no-wrap msgid "`drkonqi`" msgstr "`drkonqi`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2676 #, no-wrap msgid "Plasma5 crash handler" msgstr "Обработчик сбоев Plasma5" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2677 #, no-wrap msgid "`ecm`" msgstr "`ecm`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2679 #, no-wrap msgid "Extra modules and scripts for CMake" msgstr "Дополнительные модули и скрипты для CMake" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2680 #, no-wrap msgid "`emoticons`" msgstr "`emoticons`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2682 #, no-wrap msgid "KF5 library to convert emoticons" msgstr "Библиотека KF5 для преобразования эмотиконов" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2683 #, no-wrap msgid "`eventviews`" msgstr "`eventviews`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2685 #, no-wrap msgid "Event view libriares for KDEPim" msgstr "Библиотеки просмотра событий для KDEPim" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2686 #, no-wrap msgid "`filemetadata`" msgstr "`filemetadata`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2688 #, no-wrap msgid "KF5 library for extracting file metadata" msgstr "Библиотека KF5 для извлечения метаданных файлов" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2689 #, no-wrap msgid "`frameworkintegration`" msgstr "`frameworkintegration`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2691 #, no-wrap msgid "KF5 workspace and cross-framework integration plugins" msgstr "Плагины рабочего пространства KF5 и интеграции фреймворков" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2692 #, no-wrap msgid "`gapi`" msgstr "`gapi`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2694 #, no-wrap msgid "KDE based library to access google services" msgstr "Библиотека на основе KDE для доступа к сервисам Google" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2695 #, no-wrap msgid "`globalaccel`" msgstr "`globalaccel`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2697 #, no-wrap msgid "KF5 library to add support for global workspace shortcuts" msgstr "Библиотека KF5 для добавления поддержки глобальных сочетаний клавиш рабочего пространства" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2698 #, no-wrap msgid "`grantlee-editor`" msgstr "`grantlee-editor`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2700 #, no-wrap msgid "Editor for Grantlee themes" msgstr "Редактор тем Grantlee" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2701 #, no-wrap msgid "`grantleetheme`" msgstr "`grantleetheme`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2703 #, no-wrap msgid "KDE PIM grantleetheme" msgstr "KDE PIM grantleetheme" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2704 #, no-wrap msgid "`gravatar`" msgstr "`gravatar`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2706 #, no-wrap msgid "Library for gravatar support" msgstr "Библиотека для поддержки gravatar" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2707 #, no-wrap msgid "`guiaddons`" msgstr "`guiaddons`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2709 #, no-wrap msgid "KF5 addons to QtGui" msgstr "KF5 аддоны для QtGui" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2710 #, no-wrap msgid "`holidays`" msgstr "`holidays`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2712 #, no-wrap msgid "KDE library for calendar holidays" msgstr "Библиотека KDE для календарных праздников" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2713 #, no-wrap msgid "`hotkeys`" msgstr "`hotkeys`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2715 #, no-wrap msgid "Plasma5 library for hotkeys" msgstr "Библиотека Plasma5 для горячих клавиш" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2716 #, no-wrap msgid "`i18n`" msgstr "`i18n`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2718 #, no-wrap msgid "KF5 advanced internationalization framework" msgstr "KF5 — расширенная инфраструктура интернационализации" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2719 #, no-wrap msgid "`iconthemes`" msgstr "`iconthemes`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2721 #, no-wrap msgid "KF5 library for handling icons in applications" msgstr "Библиотека KF5 для работы с иконками в приложениях" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2722 #, no-wrap msgid "`identitymanagement`" msgstr "`identitymanagement`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2724 #, no-wrap msgid "KDE pim identities" msgstr "KDE pim идентификации" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2725 #, no-wrap msgid "`idletime`" msgstr "`idletime`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2727 #, no-wrap msgid "KF5 library for monitoring user activity" msgstr "Библиотека KF5 для мониторинга активности пользователей" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2728 #, no-wrap msgid "`imap`" msgstr "`imap`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2730 #, no-wrap msgid "KDE API for IMAP support" msgstr "KDE API для поддержки IMAP" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2731 #, no-wrap msgid "`incidenceeditor`" msgstr "`incidenceeditor`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2733 #, no-wrap msgid "Incidence editor libriares for KDEPim" msgstr "Инцидентные редакторские библиотеки для KDEPim" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2734 #, no-wrap msgid "`infocenter`" msgstr "`infocenter`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2736 #, no-wrap msgid "Plasma5 utility providing system information" msgstr "Утилита Plasma5, предоставляющая системную информацию" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2737 #, no-wrap msgid "`init`" msgstr "`init`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2739 #, no-wrap msgid "KF5 process launcher to speed up launching KDE applications" msgstr "Запускатель процессов KF5 для ускорения запуска приложений KDE" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2740 #, no-wrap msgid "`itemmodels`" msgstr "`itemmodels`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2742 #, no-wrap msgid "KF5 models for Qt Model/View system" msgstr "Модели KF5 для системы Qt Model/View" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2743 #, no-wrap msgid "`itemviews`" msgstr "`itemviews`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2745 #, no-wrap msgid "KF5 widget addons for Qt Model/View" msgstr "KF5 виджеты-дополнения для Qt Model/View" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2746 #, no-wrap msgid "`jobwidgets`" msgstr "`jobwidgets`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2748 #, no-wrap msgid "KF5 widgets for tracking KJob instance" msgstr "Виджеты KF5 для отслеживания экземпляра KJob" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2749 #, no-wrap msgid "`js`" msgstr "`js`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2751 #, no-wrap msgid "KF5 library providing an ECMAScript interpreter" msgstr "Библиотека KF5, предоставляющая интерпретатор ECMAScript" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2752 #, no-wrap msgid "`jsembed`" msgstr "`jsembed`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2754 #, no-wrap msgid "KF5 library for binding JavaScript objects to QObjects" msgstr "Библиотека KF5 для привязки объектов JavaScript к QObjects" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2755 #, no-wrap msgid "`kaddressbook`" msgstr "`kaddressbook`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2757 #, no-wrap msgid "KDE contact manager" msgstr "Менеджер контактов KDE" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2758 #: documentation/content/en/books/porters-handbook/special/_index.adoc:2761 #, no-wrap msgid "`kalarm`" msgstr "`kalarm`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2760 #: documentation/content/en/books/porters-handbook/special/_index.adoc:2763 #, no-wrap msgid "Personal alarm scheduler" msgstr "Планировщик персональных сигналов тревоги" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2764 #, no-wrap msgid "`kate`" msgstr "`kate`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2766 #, no-wrap msgid "Basic editor framework for the KDE system" msgstr "Базовая структура редактора для системы KDE" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2767 #, no-wrap msgid "`kcmutils`" msgstr "`kcmutils`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2769 #, no-wrap msgid "KF5 utilities for working with KCModules" msgstr "KF5 утилиты для работы с KCModules" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2770 #, no-wrap msgid "`kde-cli-tools`" msgstr "`kde-cli-tools`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2772 #, no-wrap msgid "Plasma5 non-interactive system tools" msgstr "Неинтерактивные системные инструменты Plasma5" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2773 #, no-wrap msgid "`kde-gtk-config`" msgstr "`kde-gtk-config`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2775 #, no-wrap msgid "Plasma5 GTK2 and GTK3 configurator" msgstr "Plasma5 конфигуратор GTK2 и GTK3" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2776 #, no-wrap msgid "`kdeclarative`" msgstr "`kdeclarative`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2778 #, no-wrap msgid "KF5 library providing integration of QML and KDE Frameworks" msgstr "Библиотека KF5, обеспечивающая интеграцию QML и KDE Frameworks" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2779 #, no-wrap msgid "`kded`" msgstr "`kded`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2781 #, no-wrap msgid "KF5 extensible daemon for providing system level services" msgstr "KF5 расширяемый демон для предоставления системных сервисов" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2782 #, no-wrap msgid "`kdelibs4support`" msgstr "`kdelibs4support`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2784 #, no-wrap msgid "KF5 porting aid from KDELibs4" msgstr "Помощник в портировании KF5 из KDELibs4" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2785 #, no-wrap msgid "`kdepim-addons`" msgstr "`kdepim-addons`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2787 #, no-wrap msgid "KDE PIM addons" msgstr "Дополнения KDE PIM" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2788 #, no-wrap msgid "`kdepim-apps-libs`" msgstr "`kdepim-apps-libs`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2790 #, no-wrap msgid "KDE PIM mail related libraries" msgstr "Библиотеки KDE PIM, связанные с почтой" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2791 #, no-wrap msgid "`kdepim-runtime5`" msgstr "`kdepim-runtime5`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2793 #, no-wrap msgid "KDE PIM tools and services" msgstr "Инструменты и службы KDE PIM" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2794 #, no-wrap msgid "`kdeplasma-addons`" msgstr "`kdeplasma-addons`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2796 #, no-wrap msgid "Plasma5 addons to improve the Plasma experience" msgstr "Дополнения Plasma5 для улучшения работы с Plasma" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2797 #, no-wrap msgid "`kdesu`" msgstr "`kdesu`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2799 #, no-wrap msgid "KF5 integration with su for elevated privileges" msgstr "Интеграция KF5 с su для повышенных привилегий" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2800 #, no-wrap msgid "`kdewebkit`" msgstr "`kdewebkit`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2802 #, no-wrap msgid "KF5 library providing integration of QtWebKit" msgstr "Библиотека KF5, обеспечивающая интеграцию QtWebKit" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2803 #, no-wrap msgid "`kgamma5`" msgstr "`kgamma5`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2805 #, no-wrap msgid "Plasma5 monitor's gamma settings" msgstr "Настройки гаммы монитора Plasma5" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2806 #, no-wrap msgid "`khtml`" msgstr "`khtml`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2808 #, no-wrap msgid "KF5 KTHML rendering engine" msgstr "Механизм рендеринга KF5 KTHML" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2809 #, no-wrap msgid "`kimageformats`" msgstr "`kimageformats`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2811 #, no-wrap msgid "KF5 library providing support for additional image formats" msgstr "Библиотека KF5, обеспечивающая поддержку дополнительных форматов изображений" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2812 #, no-wrap msgid "`kio`" msgstr "`kio`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2814 #, no-wrap msgid "KF5 resource and network access abstraction" msgstr "Абстракция ресурсов и сетевого доступа KF5" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2815 #, no-wrap msgid "`kirigami2`" msgstr "`kirigami2`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2817 #, no-wrap msgid "QtQuick based components set" msgstr "Набор компонентов на основе QtQuick" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2818 #, no-wrap msgid "`kitinerary`" msgstr "`kitinerary`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2820 #, no-wrap msgid "Data Model and Extraction System for Travel Reservation information" msgstr "Модель данных и система извлечения информации о бронировании путешествий" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2821 #: documentation/content/en/books/porters-handbook/special/_index.adoc:2824 #, no-wrap msgid "`kmail`" msgstr "`kmail`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2823 #: documentation/content/en/books/porters-handbook/special/_index.adoc:2826 #, no-wrap msgid "KDE mail client" msgstr "Клиент электронной почты KDE" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2827 #, no-wrap msgid "`kmail-account-wizard`" msgstr "`kmail-account-wizard`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2829 #, no-wrap msgid "KDE mail account wizard" msgstr "Мастер настройки почтового аккаунта KDE" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2830 #, no-wrap msgid "`kmenuedit`" msgstr "`kmenuedit`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2832 #, no-wrap msgid "Plasma5 menu editor" msgstr "Редактор меню Plasma5" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2833 #, no-wrap msgid "`knotes`" msgstr "`knotes`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2835 #, no-wrap msgid "Popup notes" msgstr "Всплывающие примечания" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2836 #: documentation/content/en/books/porters-handbook/special/_index.adoc:2839 #, no-wrap msgid "`kontact`" msgstr "`kontact`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2838 #: documentation/content/en/books/porters-handbook/special/_index.adoc:2841 #, no-wrap msgid "KDE Personal Information Manager" msgstr "KDE Персональный Органайзер" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2842 #, no-wrap msgid "`kontactinterface`" msgstr "`kontactinterface`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2844 #, no-wrap msgid "KDE glue for embedding KParts into Kontact" msgstr "KDE glue для встраивания KParts в Kontact" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2845 #, no-wrap msgid "`korganizer`" msgstr "`korganizer`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2847 #, no-wrap msgid "Calendar and scheduling Program" msgstr "Программа для календаря и планирования" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2848 #, no-wrap msgid "`kpimdav`" msgstr "`kpimdav`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2850 #, no-wrap msgid "A DAV protocol implementation with KJobs" msgstr "Реализация протокола DAV с KJobs" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2851 #, no-wrap msgid "`kpkpass`" msgstr "`kpkpass`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2853 #, no-wrap msgid "Library to deal with Apple Wallet pass files" msgstr "Библиотека для работы с файлами паролей Apple Wallet" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2854 #, no-wrap msgid "`kross`" msgstr "`kross`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2856 #, no-wrap msgid "KF5 multi-language application scripting" msgstr "KF5 мультиязыковые прикладные скрипты" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2857 #, no-wrap msgid "`kscreen`" msgstr "`kscreen`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2859 #: documentation/content/en/books/porters-handbook/special/_index.adoc:2919 #, no-wrap msgid "Plasma5 screen management library" msgstr "Библиотека управления экраном Plasma5" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2860 #, no-wrap msgid "`kscreenlocker`" msgstr "`kscreenlocker`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2862 #, no-wrap msgid "Plasma5 secure lock screen architecture" msgstr "Архитектура безопасной блокировки экрана Plasma5" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2863 #, no-wrap msgid "`ksmtp`" msgstr "`ksmtp`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2865 #, no-wrap msgid "Job-based library to send email through an SMTP server" msgstr "Библиотека на основе задач для отправки электронной почты через SMTP-сервер" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2866 #, no-wrap msgid "`ksshaskpass`" msgstr "`ksshaskpass`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2868 #, no-wrap msgid "Plasma5 ssh-add frontend" msgstr "Plasma5 интерфейс для ssh-add" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2869 #, no-wrap msgid "`ksysguard`" msgstr "`ksysguard`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2871 #, no-wrap msgid "Plasma5 utility to track and control the running processes" msgstr "Утилита Plasma5 для отслеживания и управления запущенными процессами" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2872 #, no-wrap msgid "`kwallet-pam`" msgstr "`kwallet-pam`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2874 #, no-wrap msgid "Plasma5 KWallet PAM Integration" msgstr "Интеграция Plasma5 KWallet с PAM" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2875 #, no-wrap msgid "`kwayland-integration`" msgstr "`kwayland-integration`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2877 #, no-wrap msgid "Integration plugins for a Wayland-based desktop" msgstr "Интеграционные плагины для рабочего стола на основе Wayland" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2878 #, no-wrap msgid "`kwin`" msgstr "`kwin`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2880 #, no-wrap msgid "Plasma5 window manager" msgstr "Менеджер окон Plasma5" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2881 #, no-wrap msgid "`kwrited`" msgstr "`kwrited`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2883 #, no-wrap msgid "Plasma5 daemon listening for wall and write messages" msgstr "Демон Plasma5, ожидающий сообщения wall и write" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2884 #, no-wrap msgid "`ldap`" msgstr "`ldap`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2886 #, no-wrap msgid "LDAP access API for KDE" msgstr "API доступа к LDAP для KDE" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2887 #, no-wrap msgid "`libkcddb`" msgstr "`libkcddb`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2889 #, no-wrap msgid "KDE CDDB library" msgstr "Библиотека KDE CDDB" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2890 #, no-wrap msgid "`libkcompactdisc`" msgstr "`libkcompactdisc`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2892 #, no-wrap msgid "KDE library for interfacing with audio CDs" msgstr "Библиотека KDE для взаимодействия с аудио-CD" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2893 #, no-wrap msgid "`libkdcraw`" msgstr "`libkdcraw`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2895 #, no-wrap msgid "LibRaw interface for KDE" msgstr "Интерфейс LibRaw для KDE" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2896 #, no-wrap msgid "`libkdegames`" msgstr "`libkdegames`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2898 #, no-wrap msgid "Libraries used by KDE games" msgstr "Библиотеки, используемые играми KDE" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2899 #, no-wrap msgid "`libkdepim`" msgstr "`libkdepim`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2901 #, no-wrap msgid "KDE PIM Libraries" msgstr "Библиотеки KDE PIM" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2902 #, no-wrap msgid "`libkeduvocdocument`" msgstr "`libkeduvocdocument`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2904 #, no-wrap msgid "Library for reading and writing vocabulary files" msgstr "Библиотека для чтения и записи файлов словарей" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2905 #, no-wrap msgid "`libkexiv2`" msgstr "`libkexiv2`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2907 #, no-wrap msgid "Exiv2 library interface for KDE" msgstr "Интерфейс библиотеки Exiv2 для KDE" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2908 #, no-wrap msgid "`libkipi`" msgstr "`libkipi`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2910 #, no-wrap msgid "KDE Image Plugin Interface" msgstr "Интерфейс плагинов изображений KDE" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2911 #, no-wrap msgid "`libkleo`" msgstr "`libkleo`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2913 #, no-wrap msgid "Certificate manager for KDE" msgstr "Менеджер сертификатов для KDE" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2914 #, no-wrap msgid "`libksane`" msgstr "`libksane`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2916 #, no-wrap msgid "SANE library interface for KDE" msgstr "Интерфейс библиотеки SANE для KDE" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2917 #, no-wrap msgid "`libkscreen`" msgstr "`libkscreen`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2920 #, no-wrap msgid "`libksieve`" msgstr "`libksieve`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2922 #, no-wrap msgid "Sieve libriares for KDEPim" msgstr "Библиотеки Sieve для KDEPim" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2923 #, no-wrap msgid "`libksysguard`" msgstr "`libksysguard`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2925 #, no-wrap msgid "Plasma5 library to track and control running processes" msgstr "Библиотека Plasma5 для отслеживания и управления запущенными процессами" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2926 #, no-wrap msgid "`mailcommon`" msgstr "`mailcommon`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2928 #: documentation/content/en/books/porters-handbook/special/_index.adoc:2988 #, no-wrap msgid "Common libriares for KDEPim" msgstr "Общие библиотеки для KDEPim" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2929 #, no-wrap msgid "`mailimporter`" msgstr "`mailimporter`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2931 #: documentation/content/en/books/porters-handbook/special/_index.adoc:2943 #, no-wrap msgid "Import mbox files to KMail" msgstr "Импорт файлов mbox в KMail" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2932 #, no-wrap msgid "`mailtransport`" msgstr "`mailtransport`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2934 #, no-wrap msgid "KDE library to managing mail transport" msgstr "Библиотека KDE для управления транспортом почты" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2935 #, no-wrap msgid "`marble`" msgstr "`marble`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2937 #, no-wrap msgid "Virtual globe and world atlas for KDE" msgstr "Виртуальный глобус и мировой атлас для KDE" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2938 #, no-wrap msgid "`mbox`" msgstr "`mbox`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2941 #, no-wrap msgid "`mbox-importer`" msgstr "`mbox-importer`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2944 #, no-wrap msgid "`mediaplayer`" msgstr "`mediaplayer`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2946 #, no-wrap msgid "KF5 plugin interface for media player features" msgstr "Интерфейс плагина KF5 для функций медиаплеера" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2947 #, no-wrap msgid "`messagelib`" msgstr "`messagelib`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2949 #, no-wrap msgid "Library for handling messages" msgstr "Библиотека для обработки сообщений" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2950 #, no-wrap msgid "`milou`" msgstr "`milou`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2952 #, no-wrap msgid "Plasma5 Plasmoid for search" msgstr "Plasma5 Plasmoid для поиска" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2953 #, no-wrap msgid "`mime`" msgstr "`mime`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2955 #, no-wrap msgid "Library for handling MIME data" msgstr "Библиотека для обработки данных MIME" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2956 #, no-wrap msgid "`newstuff`" msgstr "`newstuff`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2958 #, no-wrap msgid "KF5 library for downloading application assets from the network" msgstr "Библиотека KF5 для загрузки ресурсов приложений из сети" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2959 #, no-wrap msgid "`notifications`" msgstr "`notifications`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2961 #, no-wrap msgid "KF5 abstraction for system notifications" msgstr "Абстракция KF5 для системных уведомлений" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2962 #, no-wrap msgid "`notifyconfig`" msgstr "`notifyconfig`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2964 #, no-wrap msgid "KF5 configuration system for KNotify" msgstr "Система конфигурации KF5 для KNotify" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2965 #, no-wrap msgid "`okular`" msgstr "`okular`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2967 #, no-wrap msgid "KDE universal document viewer" msgstr "Универсальная программа для просмотра документов KDE" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2968 #, no-wrap msgid "`oxygen`" msgstr "`oxygen`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2970 #, no-wrap msgid "Plasma5 Oxygen style" msgstr "Стиль Plasma5 Oxygen" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2971 #, no-wrap msgid "`oxygen-icons5`" msgstr "`oxygen-icons5`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2973 #, no-wrap msgid "The Oxygen icon theme for KDE" msgstr "Тема иконок Oxygen для KDE" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2974 #, no-wrap msgid "`package`" msgstr "`package`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2976 #, no-wrap msgid "KF5 library to load and install packages" msgstr "Библиотека KF5 для загрузки и установки пакетов" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2977 #, no-wrap msgid "`parts`" msgstr "`parts`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2979 #, no-wrap msgid "KF5 document centric plugin system" msgstr "KF5 система плагинов для работы с документами" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2980 #, no-wrap msgid "`people`" msgstr "`people`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2982 #, no-wrap msgid "KF5 library providing access to contacts" msgstr "Библиотека KF5, предоставляющая доступ к контактам" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2983 #, no-wrap msgid "`pim-data-exporter`" msgstr "`pim-data-exporter`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2985 #, no-wrap msgid "Import and export KDE PIM settings" msgstr "Импорт и экспорт настроек KDE PIM" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2986 #, no-wrap msgid "`pimcommon`" msgstr "`pimcommon`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2989 #, no-wrap msgid "`pimtextedit`" msgstr "`pimtextedit`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2991 #, no-wrap msgid "KDE library for PIM-specific text editing utilities" msgstr "Библиотека KDE для утилит редактирования текста, специфичных для PIM" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2992 #, no-wrap msgid "`plasma-browser-integration`" msgstr "`plasma-browser-integration`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2994 #, no-wrap msgid "Plasma5 components to integrate browsers into the desktop" msgstr "Компоненты Plasma5 для интеграции браузеров в рабочий стол" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2995 #, no-wrap msgid "`plasma-desktop`" msgstr "`plasma-desktop`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2997 #, no-wrap msgid "Plasma5 plasma desktop" msgstr "Plasma5 рабочий стол Plasma" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:2998 #, no-wrap msgid "`plasma-framework`" msgstr "`plasma-framework`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3000 #, no-wrap msgid "KF5 plugin based UI runtime used to write user interfaces" msgstr "KF5 - среда выполнения пользовательского интерфейса на основе плагинов, используемая для создания пользовательских интерфейсов" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3001 #, no-wrap msgid "`plasma-integration`" msgstr "`plasma-integration`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3003 #, no-wrap msgid "Qt Platform Theme integration plugins for the Plasma workspaces" msgstr "Плагины интеграции Qt Platform Theme для рабочего окружения Plasma" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3004 #, no-wrap msgid "`plasma-pa`" msgstr "`plasma-pa`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3006 #, no-wrap msgid "Plasma5 Plasma pulse audio mixer" msgstr "Plasma5 Микшер звука Plasma Pulse" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3007 #, no-wrap msgid "`plasma-sdk`" msgstr "`plasma-sdk`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3009 #, no-wrap msgid "Plasma5 applications useful for Plasma development" msgstr "Приложения Plasma5, полезные для разработки Plasma" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3010 #, no-wrap msgid "`plasma-workspace`" msgstr "`plasma-workspace`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3012 #, no-wrap msgid "Plasma5 Plasma workspace" msgstr "Plasma5 Рабочее пространство Plasma" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3013 #, no-wrap msgid "`plasma-workspace-wallpapers`" msgstr "`plasma-workspace-wallpapers`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3015 #, no-wrap msgid "Plasma5 wallpapers" msgstr "Обои Plasma5" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3016 #, no-wrap msgid "`plotting`" msgstr "`plotting`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3018 #, no-wrap msgid "KF5 lightweight plotting framework" msgstr "KF5 облегченный фреймворк для построения графиков" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3019 #, no-wrap msgid "`polkit-kde-agent-1`" msgstr "`polkit-kde-agent-1`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3021 #, no-wrap msgid "Plasma5 daemon providing a polkit authentication UI" msgstr "Демон Plasma5, предоставляющий интерфейс аутентификации polkit" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3022 #, no-wrap msgid "`powerdevil`" msgstr "`powerdevil`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3024 #, no-wrap msgid "Plasma5 tool to manage the power consumption settings" msgstr "Инструмент Plasma5 для управления настройками энергопотребления" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3025 #, no-wrap msgid "`prison`" msgstr "`prison`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3027 #, no-wrap msgid "API to produce barcodes" msgstr "Интерфейс API для создания штрихкодов" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3028 #, no-wrap msgid "`pty`" msgstr "`pty`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3030 #, no-wrap msgid "KF5 pty abstraction" msgstr "Абстракция pty KF5" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3031 #, no-wrap msgid "`purpose`" msgstr "`purpose`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3033 #, no-wrap msgid "Offers available actions for a specific purpose" msgstr "Предлагает доступные действия для конкретной цели" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3034 #, no-wrap msgid "`qqc2-desktop-style`" msgstr "`qqc2-desktop-style`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3036 #, no-wrap msgid "Qt QuickControl2 style for KDE" msgstr "Стиль Qt QuickControl2 для KDE" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3037 #, no-wrap msgid "`runner`" msgstr "`runner`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3039 #, no-wrap msgid "KF5 parallelized query system" msgstr "KF5 параллелизованная система запросов" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3040 #, no-wrap msgid "`service`" msgstr "`service`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3042 #, no-wrap msgid "KF5 advanced plugin and service introspection" msgstr "KF5 расширенные плагины и интроспекция сервисов" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3043 #, no-wrap msgid "`solid`" msgstr "`solid`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3045 #, no-wrap msgid "KF5 hardware integration and detection" msgstr "Интеграция и обнаружение оборудования KF5" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3046 #, no-wrap msgid "`sonnet`" msgstr "`sonnet`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3048 #, no-wrap msgid "KF5 plugin-based spell checking library" msgstr "KF5 библиотека проверки орфографии на основе плагинов" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3049 #, no-wrap msgid "`syndication`" msgstr "`syndication`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3051 #, no-wrap msgid "KDE RSS feed handling library" msgstr "Библиотека KDE для обработки RSS-лент" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3052 #, no-wrap msgid "`syntaxhighlighting`" msgstr "`syntaxhighlighting`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3054 #, no-wrap msgid "KF5 syntax highlighting engine for structured text and code" msgstr "Движок подсветки синтаксиса KF5 для структурированного текста и кода" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3055 #, no-wrap msgid "`systemsettings`" msgstr "`systemsettings`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3057 #, no-wrap msgid "Plasma5 system settings" msgstr "Настройки системы Plasma5" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3058 #, no-wrap msgid "`texteditor`" msgstr "`texteditor`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3060 #, no-wrap msgid "KF5 advanced embeddable text editor" msgstr "KF5 продвинутый встраиваемый текстовый редактор" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3061 #, no-wrap msgid "`textwidgets`" msgstr "`textwidgets`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3063 #, no-wrap msgid "KF5 advanced text editing widgets" msgstr "KF5 расширенные виджеты для редактирования текста" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3064 #, no-wrap msgid "`threadweaver`" msgstr "`threadweaver`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3067 #, no-wrap msgid "`tnef`" msgstr "`tnef`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3069 #, no-wrap msgid "KDE API for the handling of TNEF data" msgstr "KDE API для обработки данных TNEF" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3070 #, no-wrap msgid "`unitconversion`" msgstr "`unitconversion`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3072 #, no-wrap msgid "KF5 library for unit conversion" msgstr "Библиотека KF5 для преобразования единиц измерения" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3073 #, no-wrap msgid "`user-manager`" msgstr "`user-manager`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3075 #, no-wrap msgid "Plasma5 user manager" msgstr "Пользовательский менеджер Plasma5" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3076 #, no-wrap msgid "`wallet`" msgstr "`wallet`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3078 #, no-wrap msgid "KF5 secure and unified container for user passwords" msgstr "KF5 безопасный и унифицированный контейнер для паролей пользователей" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3081 #, no-wrap msgid "KF5 Client and Server library wrapper for the Wayland libraries" msgstr "Обёртка клиентской и серверной библиотек KF5 для библиотек Wayland" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3082 #, no-wrap msgid "`widgetsaddons`" msgstr "`widgetsaddons`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3084 #, no-wrap msgid "KF5 addons to QtWidgets" msgstr "KF5 аддоны для QtWidgets" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3085 #, no-wrap msgid "`windowsystem`" msgstr "`windowsystem`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3087 #, no-wrap msgid "KF5 library for access to the windowing system" msgstr "Библиотека KF5 для доступа к оконной системе" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3088 #, no-wrap msgid "`xmlgui`" msgstr "`xmlgui`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3090 #, no-wrap msgid "KF5 user configurable main windows" msgstr "KF5 настраиваемые пользователем главные окна" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3091 #, no-wrap msgid "`xmlrpcclient`" msgstr "`xmlrpcclient`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3092 #, no-wrap msgid "KF5 interaction with XMLRPC services" msgstr "Взаимодействие KF5 с XMLRPC-сервисами" #. type: Block title #: documentation/content/en/books/porters-handbook/special/_index.adoc:3095 #, no-wrap msgid "`USE_KDE` Example" msgstr "Пример `USE_KDE`" #. type: delimited block = 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:3105 msgid "" "This is a simple example for a KDE port. `USES= cmake` instructs the port " "to utilize CMake, a configuration tool widely used by KDE projects (see " "crossref:special[using-cmake, Using `cmake`] for detailed usage). `USE_KDE` " "brings dependency on KDE libraries. Required KDE components and other " "dependencies can be determined through the configure log. `USE_KDE` does " "not imply `USE_QT`. If a port requires some Qt components, specify them in " "`USE_QT`." msgstr "" "Это простой пример порта для KDE. `USES= cmake` указывает порту " "использовать CMake, инструмент конфигурации, широко применяемый в проектах " "KDE (см. crossref:special[using-cmake, Использование `cmake`] для подробного " "описания). `USE_KDE` добавляет зависимость от библиотек KDE. Необходимые " "компоненты KDE и другие зависимости можно определить через журнал " "конфигурации. `USE_KDE` не подразумевает `USE_QT`. Если порту требуются " "некоторые компоненты Qt, укажите их в `USE_QT`." #. type: delimited block . 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:3111 #, no-wrap msgid "" "USES=\t\tcmake kde:5 qt:5\n" "USE_KDE=\tecm\n" "USE_QT=\t\tcore buildtools_build qmake_build\n" msgstr "" "USES=\t\tcmake kde:5 qt:5\n" "USE_KDE=\tecm\n" "USE_QT=\t\tcore buildtools_build qmake_build\n" #. type: Title == #: documentation/content/en/books/porters-handbook/special/_index.adoc:3116 #, no-wrap msgid "Using LXQt" msgstr "Использование LXQt" #. type: delimited block = 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:3119 msgid "" "Applications depending on LXQt should set `USES+= lxqt` and set `USE_LXQT` " "to the list of required components from the table below" msgstr "" "Приложения, зависящие от LXQt, должны устанавливать `USES+= lxqt` и задавать " "`USE_LXQT` списком необходимых компонентов из таблицы ниже" #. type: Block title #: documentation/content/en/books/porters-handbook/special/_index.adoc:3121 #, no-wrap msgid "Available LXQt Components" msgstr "Доступные компоненты LXQt" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3130 #, no-wrap msgid "Helpers for additional CMake modules" msgstr "Помощники для дополнительных модулей CMake" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3131 #, no-wrap msgid "`libfmqt`" msgstr "`libfmqt`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3133 #, no-wrap msgid "Libfm Qt bindings" msgstr "Привязки Libfm к Qt" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3134 #, no-wrap msgid "`lxqt`" msgstr "`lxqt`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3136 #, no-wrap msgid "LXQt core library" msgstr "Ядро библиотеки LXQt" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3137 #, no-wrap msgid "`qtxdg`" msgstr "`qtxdg`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3138 #, no-wrap msgid "Qt implementation of freedesktop.org XDG specifications" msgstr "Реализация Qt спецификаций freedesktop.org XDG" #. type: Block title #: documentation/content/en/books/porters-handbook/special/_index.adoc:3141 #, no-wrap msgid "`USE_LXQT` Example" msgstr "Пример `USE_LXQT`" #. type: delimited block = 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:3146 msgid "" "This is a simple example, `USE_LXQT` adds a dependency on LXQt libraries. " "Required LXQt components and other dependencies can be determined from the " "configure log." msgstr "" "Это простой пример, `USE_LXQT` добавляет зависимость от библиотек LXQt. " "Необходимые компоненты LXQt и другие зависимости можно определить из журнала " "конфигурации." #. type: delimited block . 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:3152 #, no-wrap msgid "" "USES=\tcmake lxqt qt:5 tar:xz\n" "USE_QT=\t\tcore dbus widgets buildtools_build qmake_build\n" "USE_LXQT=\tbuildtools libfmqt\n" msgstr "" "USES=\tcmake lxqt qt:5 tar:xz\n" "USE_QT=\t\tcore dbus widgets buildtools_build qmake_build\n" "USE_LXQT=\tbuildtools libfmqt\n" #. type: Title == #: documentation/content/en/books/porters-handbook/special/_index.adoc:3157 #, no-wrap msgid "Using Java" msgstr "Использование Java" #. type: Title === #: documentation/content/en/books/porters-handbook/special/_index.adoc:3160 #, no-wrap msgid "Variable Definitions" msgstr "Определения переменных" #. type: delimited block = 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:3163 msgid "" "If the port needs a Java(TM) Development Kit (JDK(TM)) to either build, run " "or even extract the distfile, then define `USE_JAVA`." msgstr "" "Если порту требуется Java(TM) Development Kit (JDK(TM)) для сборки, запуска " "или даже извлечения distfile, определите `USE_JAVA`." #. type: delimited block = 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:3167 msgid "" "There are several JDKs in the ports collection, from various vendors, and in " "several versions. If the port must use a particular version, specify it " "using the `JAVA_VERSION` variable. The most current version is package:java/" "openjdk25[], with package:java/openjdk24[], package:java/openjdk23[], " "package:java/openjdk22[], package:java/openjdk21[], package:java/" "openjdk20[], package:java/openjdk17[], package:java/openjdk11[], and package:" "java/openjdk8[], also available." msgstr "" "В коллекции портов доступно несколько JDK от различных поставщиков и в " "нескольких версиях. Если порт должен использовать определённую версию, " "укажите её с помощью переменной `JAVA_VERSION`. Самая актуальная версия — " "package:java/openjdk25[], также доступны package:java/openjdk24[], package:" "java/openjdk23[], package:java/openjdk22[], package:java/openjdk21[], " "package:java/openjdk20[], package:java/openjdk17[], package:java/openjdk11[] " "и package:java/openjdk8[]." #. type: Block title #: documentation/content/en/books/porters-handbook/special/_index.adoc:3169 #, no-wrap msgid "Variables Which May be Set by Ports That Use Java" msgstr "Переменные, которые могут быть установлены портами, использующими Java" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3176 #, no-wrap msgid "`USE_JAVA`" msgstr "`USE_JAVA`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3178 #, no-wrap msgid "Define for the remaining variables to have any effect." msgstr "Определите для остальных переменных, чтобы они имели какой-либо эффект." #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3179 #, no-wrap msgid "`JAVA_VERSION`" msgstr "`JAVA_VERSION`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3182 #, no-wrap msgid "" "List of space-separated suitable Java versions for the port.\n" "An optional `\\+` allows specifying a range of versions (allowed values: `8[+] 11[\\+] 17[+] 18[\\+] 19[+] 20[\\+] 21[+]`)." msgstr "" "Список подходящих версий Java для порта, разделённых пробелами.\n" "Необязательный символ `\\+` позволяет указать диапазон версий (допустимые значения: `8[+] 11[\\+] 17[+] 18[\\+] 19[+] 20[\\+] 21[+]`)." #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3183 #, no-wrap msgid "`JAVA_OS`" msgstr "`JAVA_OS`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3185 #, no-wrap msgid "List of space-separated suitable JDK port operating systems for the port (allowed values: `native linux`)." msgstr "Список разделенных пробелами подходящих операционных систем портов JDK для порта (допустимые значения: `native linux`)." #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3186 #, no-wrap msgid "`JAVA_VENDOR`" msgstr "`JAVA_VENDOR`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3188 #, no-wrap msgid "List of space-separated suitable JDK port vendors for the port (allowed values: `openjdk oracle`)." msgstr "Список подходящих поставщиков портов JDK для порта через пробел (допустимые значения: `openjdk oracle`)." #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3189 #, no-wrap msgid "`JAVA_BUILD`" msgstr "`JAVA_BUILD`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3191 #, no-wrap msgid "When set, add the selected JDK port to the build dependencies." msgstr "Когда установлено, добавляет выбранный порт JDK в зависимости сборки." #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3192 #, no-wrap msgid "`JAVA_RUN`" msgstr "`JAVA_RUN`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3194 #, no-wrap msgid "When set, add the selected JDK port to the run dependencies." msgstr "Когда установлено, добавляет выбранный порт JDK в зависимости времени выполнения." #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3195 #, no-wrap msgid "`JAVA_EXTRACT`" msgstr "`JAVA_EXTRACT`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3196 #, no-wrap msgid "When set, add the selected JDK port to the extract dependencies." msgstr "Когда установлено, добавляет выбранный порт JDK в зависимости для извлечения." #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:3199 msgid "" "Below is the list of all settings a port will receive after setting " "`USE_JAVA`:" msgstr "" "Ниже приведен список всех настроек, которые порт получит после установки " "`USE_JAVA`:" #. type: Block title #: documentation/content/en/books/porters-handbook/special/_index.adoc:3201 #, no-wrap msgid "Variables Provided to Ports That Use Java" msgstr "Переменные, предоставляемые портам, использующим Java" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3207 #: documentation/content/en/books/porters-handbook/special/_index.adoc:3286 #, no-wrap msgid "Value" msgstr "Значение" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3208 #, no-wrap msgid "`JAVA_PORT`" msgstr "`JAVA_PORT`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3210 #, no-wrap msgid "The name of the JDK port (for example, `java/openjdk6`)." msgstr "Имя порта JDK (например, `java/openjdk6`)." #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3211 #, no-wrap msgid "`JAVA_PORT_VERSION`" msgstr "`JAVA_PORT_VERSION`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3213 #, no-wrap msgid "The full version of the JDK port (for example, `1.6.0`). Only the first two digits of this version number are needed, use `${JAVA_PORT_VERSION:C/^([0-9])\\.([0-9])(.*)$/\\1.\\2/}`." msgstr "Полная версия порта JDK (например, `1.6.0`). Требуются только первые две цифры номера версии, используйте `${JAVA_PORT_VERSION:C/^([0-9])\\.([0-9])(.*)$/\\1.\\2/}`." #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3214 #, no-wrap msgid "`JAVA_PORT_OS`" msgstr "`JAVA_PORT_OS`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3216 #, no-wrap msgid "The operating system used by the JDK port (for example, `'native'`)." msgstr "Операционная система, используемая портом JDK (например, `'native'`)." #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3217 #, no-wrap msgid "`JAVA_PORT_VENDOR`" msgstr "`JAVA_PORT_VENDOR`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3219 #, no-wrap msgid "The vendor of the JDK port (for example, `'openjdk'`)." msgstr "Поставщик порта JDK (например, `'openjdk'`)." #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3220 #, no-wrap msgid "`JAVA_PORT_OS_DESCRIPTION`" msgstr "`JAVA_PORT_OS_DESCRIPTION`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3222 #, no-wrap msgid "Description of the operating system used by the JDK port (for example, `'Native'`)." msgstr "Описание операционной системы, используемой портом JDK (например, `'Native'`)." #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3223 #, no-wrap msgid "`JAVA_PORT_VENDOR_DESCRIPTION`" msgstr "`JAVA_PORT_VENDOR_DESCRIPTION`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3225 #, no-wrap msgid "Description of the vendor of the JDK port (for example, `'OpenJDK BSD Porting Team'`)." msgstr "Описание поставщика порта JDK (например, `'OpenJDK BSD Porting Team'`)." #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3226 #, no-wrap msgid "`JAVA_HOME`" msgstr "`JAVA_HOME`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3228 #, no-wrap msgid "Path to the installation directory of the JDK (for example, [.filename]#'/usr/local/openjdk6'#)." msgstr "Путь к каталогу установки JDK (например, [.filename]#'/usr/local/openjdk6'#)." #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3229 #, no-wrap msgid "`JAVAC`" msgstr "`JAVAC`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3231 #, no-wrap msgid "Path to the Java compiler to use (for example, [.filename]#'/usr/local/openjdk6/bin/javac'#)." msgstr "Путь к используемому компилятору Java (например, [.filename]#'/usr/local/openjdk6/bin/javac'#)." #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3232 #, no-wrap msgid "`JAR`" msgstr "`JAR`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3234 #, no-wrap msgid "Path to the `jar` tool to use (for example, [.filename]#'/usr/local/openjdk6/bin/jar'# or [.filename]#'/usr/local/bin/fastjar'#)." msgstr "Путь к инструменту `jar`, который следует использовать (например, [.filename]#'/usr/local/openjdk6/bin/jar'# или [.filename]#'/usr/local/bin/fastjar'#)." #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3235 #, no-wrap msgid "`APPLETVIEWER`" msgstr "`APPLETVIEWER`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3237 #, no-wrap msgid "Path to the `appletviewer` utility (for example, [.filename]#'/usr/local/openjdk6/bin/appletviewer'#)." msgstr "Путь к утилите `appletviewer` (например, [.filename]#'/usr/local/openjdk6/bin/appletviewer'#)." #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3238 #, no-wrap msgid "`JAVA`" msgstr "`JAVA`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3240 #, no-wrap msgid "Path to the `java` executable. Use this for executing Java programs (for example, [.filename]#'/usr/local/openjdk6/bin/java'#)." msgstr "Путь к исполняемому файлу `java`. Используется для запуска программ на Java (например, [.filename]#'/usr/local/openjdk6/bin/java'#)." #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3241 #, no-wrap msgid "`JAVADOC`" msgstr "`JAVADOC`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3243 #, no-wrap msgid "Path to the `javadoc` utility program." msgstr "Путь к программе `javadoc`." #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3244 #, no-wrap msgid "`JAVAH`" msgstr "`JAVAH`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3246 #, no-wrap msgid "Path to the `javah` program." msgstr "Путь к программе `javah`." #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3247 #, no-wrap msgid "`JAVAP`" msgstr "`JAVAP`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3249 #, no-wrap msgid "Path to the `javap` program." msgstr "Путь к программе `javap`." #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3250 #, no-wrap msgid "`JAVA_KEYTOOL`" msgstr "`JAVA_KEYTOOL`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3252 #, no-wrap msgid "Path to the `keytool` utility program." msgstr "Путь к утилите `keytool`." #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3253 #, no-wrap msgid "`JAVA_N2A`" msgstr "`JAVA_N2A`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3255 #, no-wrap msgid "Path to the `native2ascii` tool." msgstr "Путь к инструменту `native2ascii`." #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3256 #, no-wrap msgid "`JAVA_POLICYTOOL`" msgstr "`JAVA_POLICYTOOL`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3258 #, no-wrap msgid "Path to the `policytool` program." msgstr "Путь к программе `policytool`." #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3259 #, no-wrap msgid "`JAVA_SERIALVER`" msgstr "`JAVA_SERIALVER`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3261 #, no-wrap msgid "Path to the `serialver` utility program." msgstr "Путь к утилите `serialver`." #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3262 #, no-wrap msgid "`RMIC`" msgstr "`RMIC`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3264 #, no-wrap msgid "Path to the RMI stub/skeleton generator, `rmic`." msgstr "Путь к генератору RMI-заглушек/скелетов, `rmic`." #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3265 #, no-wrap msgid "`RMIREGISTRY`" msgstr "`RMIREGISTRY`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3267 #, no-wrap msgid "Path to the RMI registry program, `rmiregistry`." msgstr "Путь к программе реестра RMI, `rmiregistry`." #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3268 #, no-wrap msgid "`RMID`" msgstr "`RMID`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3270 #, no-wrap msgid "Path to the RMI daemon program `rmid`." msgstr "Путь к программе демона RMI `rmid`." #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3271 #, no-wrap msgid "`JAVA_CLASSES`" msgstr "`JAVA_CLASSES`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3272 #, no-wrap msgid "Path to the archive that contains the JDK class files, [.filename]#${JAVA_HOME}/jre/lib/rt.jar#." msgstr "Путь к архиву, содержащему файлы классов JDK, [.filename]#${JAVA_HOME}/jre/lib/rt.jar#." #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:3276 msgid "" "Use the `java-debug` make target to get information for debugging the port. " "It will display the value of many of the previously listed variables." msgstr "" "Используйте цель `java-debug` в make для получения информации для отладки " "порта. Она отобразит значения многих из перечисленных ранее переменных." #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:3278 msgid "" "Additionally, these constants are defined so all Java ports may be installed " "in a consistent way:" msgstr "" "Кроме того, определены следующие константы, чтобы все порты Java могли быть " "установлены единообразно:" #. type: Block title #: documentation/content/en/books/porters-handbook/special/_index.adoc:3280 #, no-wrap msgid "Constants Defined for Ports That Use Java" msgstr "Константы, определённые для портов, использующих Java" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3284 #, no-wrap msgid "Constant" msgstr "Константа" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3287 #, no-wrap msgid "`JAVASHAREDIR`" msgstr "`JAVASHAREDIR`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3289 #, no-wrap msgid "The base directory for everything related to Java. Default: [.filename]#${PREFIX}/share/java#." msgstr "Базовый каталог для всего, связанного с Java. По умолчанию: [.filename]#${PREFIX}/share/java#." #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3290 #, no-wrap msgid "`JAVAJARDIR`" msgstr "`JAVAJARDIR`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3292 #, no-wrap msgid "The directory where JAR files is installed. Default: [.filename]#${JAVASHAREDIR}/classes#." msgstr "Каталог, в котором установлены JAR-файлы. По умолчанию: [.filename]#${JAVASHAREDIR}/classes#." #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3293 #, no-wrap msgid "`JAVALIBDIR`" msgstr "`JAVALIBDIR`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3294 #, no-wrap msgid "The directory where JAR files installed by other ports are located. Default: [.filename]#${LOCALBASE}/share/java/classes#." msgstr "Каталог, в котором расположены JAR-файлы, установленные другими портами. По умолчанию: [.filename]#${LOCALBASE}/share/java/classes#." #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:3297 msgid "" "The related entries are defined in both `PLIST_SUB` (documented in crossref:" "plist[plist-sub,Changing pkg-plist Based on Make Variables]) and `SUB_LIST`." msgstr "" "Связанные записи определены как в `PLIST_SUB` (документировано в crossref:" "plist[plist-sub,Изменение pkg-plist на основе переменных Make]), так и в " "`SUB_LIST`." #. type: Title === #: documentation/content/en/books/porters-handbook/special/_index.adoc:3299 #, no-wrap msgid "Building with Ant" msgstr "Сборка с Ant" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:3305 msgid "" "When the port is to be built using Apache Ant, it has to define `USE_ANT`. " "Ant is thus considered to be the sub-make command. When no `do-build` " "target is defined by the port, a default one will be set that runs Ant " "according to `MAKE_ENV`, `MAKE_ARGS` and `ALL_TARGET`. This is similar to " "the `USES= gmake` mechanism, which is documented in crossref:" "special[building, Building Mechanisms]." msgstr "" "Когда порт должен собираться с использованием Apache Ant, он должен " "определять `USE_ANT`. Таким образом, Ant считается командой sub-make. Если " "цель `do-build` не определена в порте, будет установлена цель по умолчанию, " "которая запускает Ant в соответствии с `MAKE_ENV`, `MAKE_ARGS` и " "`ALL_TARGET`. Это аналогично механизму `USES= gmake`, который документирован " "в crossref:special[building, Building Mechanisms]." #. type: Title === #: documentation/content/en/books/porters-handbook/special/_index.adoc:3307 #, no-wrap msgid "Best Practices" msgstr "Лучшие практики" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:3312 msgid "" "When porting a Java library, the port has to install the JAR file(s) in [." "filename]#${JAVAJARDIR}#, and everything else under [.filename]#" "${JAVASHAREDIR}/${PORTNAME}# (except for the documentation, see below). To " "reduce the packing file size, reference the JAR file(s) directly in the [." "filename]#Makefile#. Use this statement (where [.filename]#myport.jar# is " "the name of the JAR file installed as part of the port):" msgstr "" "При переносе библиотеки Java порт должен устанавливать JAR-файл(ы) в [." "filename]#${JAVAJARDIR}#, а все остальное — в [.filename]#${JAVASHAREDIR}/" "${PORTNAME}# (за исключением документации, см. ниже). Чтобы уменьшить размер " "упаковочного файла, ссылайтесь на JAR-файл(ы) напрямую в [." "filename]#Makefile#. Используйте следующую инструкцию (где [." "filename]#myport.jar# — имя JAR-файла, устанавливаемого как часть порта):" #. type: delimited block . 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:3316 #, no-wrap msgid "PLIST_FILES+=\t${JAVAJARDIR}/myport.jar\n" msgstr "PLIST_FILES+=\t${JAVAJARDIR}/myport.jar\n" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:3321 msgid "" "When porting a Java application, the port usually installs everything under " "a single directory (including its JAR dependencies). The use of [.filename]#" "${JAVASHAREDIR}/${PORTNAME}# is strongly encouraged in this regard. It is " "up the porter to decide whether the port installs the additional JAR " "dependencies under this directory or uses the already installed ones (from [." "filename]#${JAVAJARDIR}#)." msgstr "" "При переносе Java-приложения порт обычно устанавливает все компоненты в " "единый каталог (включая зависимости в виде JAR-файлов). В этом отношении " "настоятельно рекомендуется использовать [.filename]#${JAVASHAREDIR}/" "${PORTNAME}#. Портеру предстоит решить, устанавливать ли дополнительные JAR-" "зависимости в этот каталог или использовать уже установленные (из [." "filename]#${JAVAJARDIR}#)." #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:3328 msgid "" "When porting a Java(TM) application that requires an application server such " "as package:www/tomcat7[] to run the service, it is quite common for a vendor " "to distribute a [.filename]#.war#. A [.filename]#.war# is a Web application " "ARchive and is extracted when called by the application. Avoid adding a [." "filename]#.war# to [.filename]#pkg-plist#. It is not considered best " "practice. An application server will expand war archive, but not clean it " "up properly if the port is removed. A more desirable way of working with " "this file is to extract the archive, then install the files, and lastly add " "these files to [.filename]#pkg-plist#." msgstr "" "При переносе Java(TM)-приложения, которое требует сервера приложений, такого " "как package:www/tomcat7[], для запуска службы, вендор часто распространяет " "файл [.filename]#.war#. [.filename]#.war# — это веб-архив приложения (Web " "application ARchive), который извлекается при вызове приложением. Избегайте " "добавления [.filename]#.war# в [.filename]#pkg-plist#. Это не считается " "лучшей практикой. Сервер приложений развернет архив war, но не очистит его " "должным образом при удалении порта. Более предпочтительный способ работы с " "этим файлом — извлечь архив, затем установить файлы и, наконец, добавить эти " "файлы в [.filename]#pkg-plist#." #. type: delimited block . 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:3333 #, no-wrap msgid "" "TOMCATDIR=\t${LOCALBASE}/apache-tomcat-7.0\n" "WEBAPPDIR=\tmyapplication\n" msgstr "" "TOMCATDIR=\t${LOCALBASE}/apache-tomcat-7.0\n" "WEBAPPDIR=\tmyapplication\n" #. type: delimited block . 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:3337 #, no-wrap msgid "" "post-extract:\n" "\t@${MKDIR} ${WRKDIR}/${PORTDIRNAME}\n" "\t@${TAR} xf ${WRKDIR}/myapplication.war -C ${WRKDIR}/${PORTDIRNAME}\n" msgstr "" "post-extract:\n" "\t@${MKDIR} ${WRKDIR}/${PORTDIRNAME}\n" "\t@${TAR} xf ${WRKDIR}/myapplication.war -C ${WRKDIR}/${PORTDIRNAME}\n" #. type: delimited block . 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:3342 #, no-wrap msgid "" "do-install:\n" "\tcd ${WRKDIR} && \\\n" "\t${INSTALL} -d -o ${WWWOWN} -g ${WWWGRP} ${TOMCATDIR}/webapps/${PORTDIRNAME}\n" "\tcd ${WRKDIR}/${PORTDIRNAME} && ${COPYTREE_SHARE} \\* ${WEBAPPDIR}/${PORTDIRNAME}\n" msgstr "" "do-install:\n" "\tcd ${WRKDIR} && \\\n" "\t${INSTALL} -d -o ${WWWOWN} -g ${WWWGRP} ${TOMCATDIR}/webapps/${PORTDIRNAME}\n" "\tcd ${WRKDIR}/${PORTDIRNAME} && ${COPYTREE_SHARE} \\* ${WEBAPPDIR}/${PORTDIRNAME}\n" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:3349 msgid "" "Regardless of the type of port (library or application), the additional " "documentation is installed in the crossref:makefiles[install-documentation," "same location] as for any other port. The Javadoc tool is known to produce " "a different set of files depending on the version of the JDK that is used. " "For ports that do not enforce the use of a particular JDK, it is therefore a " "complex task to specify the packing list ([.filename]#pkg-plist#). This is " "one reason why porters are strongly encouraged to use `PORTDOCS`. Moreover, " "even if the set of files that will be generated by `javadoc` can be " "predicted, the size of the resulting [.filename]#pkg-plist# advocates for " "the use of `PORTDOCS`." msgstr "" "Независимо от типа порта (библиотека или приложение), дополнительная " "документация устанавливается crossref:makefiles[install-documentation,в том " "же месте], что и для любого другого порта. Известно, что инструмент Javadoc " "создает разный набор файлов в зависимости от версии используемого JDK. Для " "портов, которые не требуют использования конкретной версии JDK, указание " "списка упаковки ([.filename]#pkg-plist#) становится сложной задачей. Это " "одна из причин, по которой разработчикам портов настоятельно рекомендуется " "использовать `PORTDOCS`. Более того, даже если набор файлов, генерируемых " "`javadoc`, можно предсказать, размер результирующего [.filename]#pkg-plist# " "говорит в пользу использования `PORTDOCS`." #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:3353 msgid "" "The default value for `DATADIR` is [.filename]#${PREFIX}/share/${PORTNAME}" "#. It is a good idea to override `DATADIR` to [.filename]#${JAVASHAREDIR}/" "${PORTNAME}# for Java ports. Indeed, `DATADIR` is automatically added to " "`PLIST_SUB` (documented in crossref:plist[plist-sub,Changing pkg-plist Based " "on Make Variables]) so use `%%DATADIR%%` directly in [.filename]#pkg-plist#." msgstr "" "Значение по умолчанию для `DATADIR` — [.filename]#${PREFIX}/share/${PORTNAME}" "#. Рекомендуется переопределить `DATADIR` на [.filename]#${JAVASHAREDIR}/" "${PORTNAME}# для портов Java. Действительно, `DATADIR` автоматически " "добавляется в `PLIST_SUB` (документировано в crossref:plist[plist-sub," "Изменение pkg-plist на основе переменных Make]), поэтому используйте `%" "%DATADIR%%` напрямую в [.filename]#pkg-plist#." #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:3356 msgid "" "As for the choice of building Java ports from source or directly installing " "them from a binary distribution, there is no defined policy at the time of " "writing. However, people from the https://www.freebsd.org/java/[FreeBSD " "Java Project] encourage porters to have their ports built from source " "whenever it is a trivial task." msgstr "" "Что касается выбора между сборкой портов Java из исходного кода или их " "непосредственной установкой из бинарного дистрибутива, на момент написания " "документации определённой политики не существует. Однако участники https://" "www.freebsd.org/java/[FreeBSD Java Project] рекомендуют сопровождающим " "портов по возможности собирать их из исходного кода, если это не " "представляет сложностей." #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:3360 msgid "" "All the features that have been presented in this section are implemented in " "[.filename]#bsd.java.mk#. If the port needs more sophisticated Java " "support, please first have a look at the https://cgit.FreeBSD.org/ports/tree/" "Mk/bsd.java.mk[bsd.java.mk Git log] as it usually takes some time to " "document the latest features. Then, if the needed support that is lacking " "would be beneficial to many other Java ports, feel free to discuss it on the " "freebsd-java." msgstr "" "Все функции, представленные в этом разделе, реализованы в [.filename]#bsd." "java.mk#. Если порту требуется более сложная поддержка Java, сначала " "ознакомьтесь с https://cgit.FreeBSD.org/ports/tree/Mk/bsd.java.mk[историей " "изменений bsd.java.mk], так как документирование новых функций обычно " "занимает некоторое время. Затем, если отсутствующая поддержка будет полезна " "для многих других Java-портов, не стесняйтесь обсудить это на списке " "рассылки freebsd-java." #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:3363 msgid "" "Although there is a `java` category for PRs, it refers to the JDK porting " "effort from the FreeBSD Java project. Therefore, submit the Java port in " "the `ports` category as for any other port, unless the issue is related to " "either a JDK implementation or [.filename]#bsd.java.mk#." msgstr "" "Хотя существует категория `java` для PR, она относится к усилиям по " "портированию JDK в рамках проекта FreeBSD Java. Поэтому отправляйте порт " "Java в категорию `ports`, как и любой другой порт, если только проблема не " "связана либо с реализацией JDK, либо с [.filename]#bsd.java.mk#." #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:3365 msgid "" "Similarly, there is a defined policy regarding the `CATEGORIES` of a Java " "port, which is detailed in crossref:makefiles[makefile-categories," "Categorization]." msgstr "" "Аналогично существует определённая политика в отношении `CATEGORIES` для " "портов Java, которая подробно описана в crossref:makefiles[makefile-" "categories,Категоризация]." #. type: Title == #: documentation/content/en/books/porters-handbook/special/_index.adoc:3367 #, no-wrap msgid "Web Applications, Apache and PHP" msgstr "Веб-приложения, Apache и PHP" #. type: Title === #: documentation/content/en/books/porters-handbook/special/_index.adoc:3370 #, no-wrap msgid "Apache" msgstr "Apache" #. type: Block title #: documentation/content/en/books/porters-handbook/special/_index.adoc:3373 #, no-wrap msgid "Variables for Ports That Use Apache" msgstr "Переменные для портов, использующих Apache" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3377 #, no-wrap msgid "`USE_APACHE`" msgstr "`USE_APACHE`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3379 #, no-wrap msgid "The port requires Apache. Possible values: `yes` (gets any version), `22`, `24`, `22-24`, `22+`, etc. The default APACHE version is `22`. More details are available in [.filename]#ports/Mk/bsd.apache.mk# and at https://wiki.freebsd.org/Apache/[wiki.freebsd.org/Apache/]." msgstr "Порт требует Apache. Возможные значения: `yes` (любая версия), `22`, `24`, `22-24`, `22+` и т.д. Версия APACHE по умолчанию — `22`. Подробнее см. в [.filename]#ports/Mk/bsd.apache.mk# и на https://wiki.freebsd.org/Apache/[wiki.freebsd.org/Apache/]." #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3380 #, no-wrap msgid "`APXS`" msgstr "`APXS`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3382 #, no-wrap msgid "Full path to the `apxs` binary. Can be overridden in the port." msgstr "Полный путь к бинарному файлу `apxs`. Может быть переопределён в порте." #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3383 #, no-wrap msgid "`HTTPD`" msgstr "`HTTPD`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3385 #, no-wrap msgid "Full path to the `httpd` binary. Can be overridden in the port." msgstr "Полный путь к бинарному файлу `httpd`. Может быть переопределён в порте." #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3386 #, no-wrap msgid "`APACHE_VERSION`" msgstr "`APACHE_VERSION`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3388 #, no-wrap msgid "The version of present Apache installation (read-only variable). This variable is only available after inclusion of [.filename]#bsd.port.pre.mk#. Possible values: `22`, `24`." msgstr "Версия установленной Apache (переменная только для чтения). Эта переменная доступна только после включения [.filename]#bsd.port.pre.mk#. Возможные значения: `22`, `24`." #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3389 #, no-wrap msgid "`APACHEMODDIR`" msgstr "`APACHEMODDIR`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3391 #, no-wrap msgid "Directory for Apache modules. This variable is automatically expanded in [.filename]#pkg-plist#." msgstr "Каталог для модулей Apache. Эта переменная автоматически раскрывается в [.filename]#pkg-plist#." #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3392 #, no-wrap msgid "`APACHEINCLUDEDIR`" msgstr "`APACHEINCLUDEDIR`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3394 #, no-wrap msgid "Directory for Apache headers. This variable is automatically expanded in [.filename]#pkg-plist#." msgstr "Каталог для заголовков Apache. Эта переменная автоматически раскрывается в [.filename]#pkg-plist#." #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3395 #, no-wrap msgid "`APACHEETCDIR`" msgstr "`APACHEETCDIR`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3396 #, no-wrap msgid "Directory for Apache configuration files. This variable is automatically expanded in [.filename]#pkg-plist#." msgstr "Каталог для файлов конфигурации Apache. Эта переменная автоматически раскрывается в [.filename]#pkg-plist#." #. type: Block title #: documentation/content/en/books/porters-handbook/special/_index.adoc:3399 #, no-wrap msgid "Useful Variables for Porting Apache Modules" msgstr "Полезные переменные для переноса модулей Apache" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3403 #, no-wrap msgid "`MODULENAME`" msgstr "`MODULENAME`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3405 #, no-wrap msgid "Name of the module. Default value is `PORTNAME`. Example: `mod_hello`" msgstr "Имя модуля. Значение по умолчанию — `PORTNAME`. Пример: `mod_hello`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3406 #, no-wrap msgid "`SHORTMODNAME`" msgstr "`SHORTMODNAME`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3408 #, no-wrap msgid "Short name of the module. Automatically derived from `MODULENAME`, but can be overridden. Example: `hello`" msgstr "Короткое имя модуля. Автоматически определяется из `MODULENAME`, но может быть переопределено. Пример: `hello`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3409 #, no-wrap msgid "`AP_FAST_BUILD`" msgstr "`AP_FAST_BUILD`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3411 #, no-wrap msgid "Use `apxs` to compile and install the module." msgstr "Используйте `apxs` для компиляции и установки модуля." #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3412 #, no-wrap msgid "`AP_GENPLIST`" msgstr "`AP_GENPLIST`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3414 #, no-wrap msgid "Also automatically creates a [.filename]#pkg-plist#." msgstr "Также автоматически создаёт файл [.filename]#pkg-plist#." #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3415 #, no-wrap msgid "`AP_INC`" msgstr "`AP_INC`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3417 #, no-wrap msgid "Adds a directory to a header search path during compilation." msgstr "Добавляет каталог в путь поиска заголовков во время компиляции." #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3418 #, no-wrap msgid "`AP_LIB`" msgstr "`AP_LIB`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3420 #, no-wrap msgid "Adds a directory to a library search path during compilation." msgstr "Добавляет каталог в путь поиска библиотек во время компиляции." #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3421 #, no-wrap msgid "`AP_EXTRAS`" msgstr "`AP_EXTRAS`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3422 #, no-wrap msgid "Additional flags to pass to `apxs`." msgstr "Дополнительные флаги для передачи в `apxs`." #. type: Title === #: documentation/content/en/books/porters-handbook/special/_index.adoc:3425 #, no-wrap msgid "Web Applications" msgstr "Веб-приложения" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:3429 msgid "" "Web applications must be installed into [.filename]#PREFIX/www/appname#. " "This path is available both in [.filename]#Makefile# and in [.filename]#pkg-" "plist# as `WWWDIR`, and the path relative to `PREFIX` is available in [." "filename]#Makefile# as `WWWDIR_REL`." msgstr "" "Веб-приложения должны быть установлены в [.filename]#PREFIX/www/appname#. " "Этот путь доступен как в [.filename]#Makefile#, так и в [.filename]#pkg-" "plist# как `WWWDIR`, а путь относительно `PREFIX` доступен в [." "filename]#Makefile# как `WWWDIR_REL`." #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:3434 msgid "" "The user and group of web server process are available as `WWWOWN` and " "`WWWGRP`, in case the ownership of some files needs to be changed. The " "default values of both are `www`. Use `WWWOWN?= myuser` and `WWWGRP?= " "mygroup` if the port needs different values. This allows the user to " "override them easily." msgstr "" "Пользователь и группа процесса веб-сервера доступны как `WWWOWN` и `WWWGRP`, " "если необходимо изменить владельца некоторых файлов. Значения по умолчанию " "для обоих — `www`. Используйте `WWWOWN?= myuser` и `WWWGRP?= mygroup`, если " "порту требуются другие значения. Это позволяет пользователю легко их " "переопределить." #. type: delimited block = 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:3439 msgid "" "Use `WWWOWN` and `WWWGRP` sparingly. Remember that every file the web " "server can write to is a security risk waiting to happen." msgstr "" "Используйте `WWWOWN` и `WWWGRP` с осторожностью. Помните, что каждый файл, " "доступный для записи веб-серверу, представляет собой потенциальную угрозу " "безопасности." #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:3443 msgid "" "Do not depend on Apache unless the web app explicitly needs Apache. Respect " "that users may wish to run a web application on a web server other than " "Apache." msgstr "" "Не зависьте от Apache, если веб-приложение явно не требует Apache. " "Учитывайте, что пользователи могут захотеть запускать веб-приложение на " "другом веб-сервере, кроме Apache." #. type: Title === #: documentation/content/en/books/porters-handbook/special/_index.adoc:3445 #, no-wrap msgid "PHP" msgstr "PHP" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:3449 msgid "" "PHP web applications declare their dependency on it with `USES=php`. See " "crossref:uses[uses-php,`php`] for more information." msgstr "" "Веб-приложения PHP объявляют свою зависимость от него с помощью `USES=php`. " "Подробнее см. в crossref:uses[uses-php,`php`]." #. type: Title === #: documentation/content/en/books/porters-handbook/special/_index.adoc:3451 #, no-wrap msgid "PEAR Modules" msgstr "Модули PEAR" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:3454 msgid "Porting PEAR modules is a very simple process." msgstr "Портирование модулей PEAR — это очень простой процесс." #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:3457 msgid "" "Add `USES=pear` to the port's [.filename]#Makefile#. The framework will " "install the relevant files in the right places and automatically generate " "the plist at install time." msgstr "" "Добавьте `USES=pear` в [.filename]#Makefile# порта. Фреймворк установит " "соответствующие файлы в нужные места и автоматически сгенерирует plist во " "время установки." #. type: Block title #: documentation/content/en/books/porters-handbook/special/_index.adoc:3459 #, no-wrap msgid "Example Makefile for PEAR Class" msgstr "Пример Makefile для PEAR Class" #. type: delimited block . 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:3467 #, no-wrap msgid "" "PORTNAME= Date\n" "DISTVERSION=\t1.4.3\n" "CATEGORIES=\tdevel www pear\n" msgstr "" "PORTNAME= Date\n" "DISTVERSION=\t1.4.3\n" "CATEGORIES=\tdevel www pear\n" #. type: delimited block . 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:3471 #, no-wrap msgid "" "MAINTAINER=\tsomeone@example.org\n" "COMMENT=\tPEAR Date and Time Zone Classes\n" "WWW=\t\thttps://pear.php.net/package/Date/\n" msgstr "" "MAINTAINER=\tsomeone@example.org\n" "COMMENT=\tPEAR Date and Time Zone Classes\n" "WWW=\t\thttps://pear.php.net/package/Date/\n" #. type: delimited block . 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:3473 #, no-wrap msgid "USES=\tpear\n" msgstr "USES=\tpear\n" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:3482 msgid "" "PEAR modules will automatically be flavorized using crossref:flavors[flavors-" "auto-php,PHP flavors]." msgstr "" "Модули PEAR будут автоматически преобразованы в порт с флейвором с " "использованием crossref:flavors[flavors-auto-php,флейворов PHP]." #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:3487 msgid "" "If a non default `PEAR_CHANNEL` is used, the build and run-time dependencies " "will automatically be added." msgstr "" "Если используется нестандартный `PEAR_CHANNEL`, зависимости для сборки и " "выполнения будут добавлены автоматически." #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:3493 msgid "" "PEAR modules do not need to defined `PKGNAMESUFFIX` it is automatically " "filled in using `PEAR_PKGNAMEPREFIX`. If a port needs to add to " "`PKGNAMEPREFIX`, it must also use `PEAR_PKGNAMEPREFIX` to differentiate " "between different flavors." msgstr "" "Модули PEAR не требуют определения `PKGNAMESUFFIX`, так как он автоматически " "заполняется с использованием `PEAR_PKGNAMEPREFIX`. Если порту необходимо " "добавить к `PKGNAMEPREFIX`, он также должен использовать " "`PEAR_PKGNAMEPREFIX`, чтобы отличать различные флейворы." #. type: Title ==== #: documentation/content/en/books/porters-handbook/special/_index.adoc:3496 #, no-wrap msgid "Horde Modules" msgstr "Модули Horde" #. type: delimited block = 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:3499 msgid "In the same way, porting Horde modules is a simple process." msgstr "Также и перенос модулей Horde является простым процессом." #. type: delimited block = 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:3502 msgid "" "Add `USES=horde` to the port's [.filename]#Makefile#. The framework will " "install the relevant files in the right places and automatically generate " "the plist at install time." msgstr "" "Добавьте `USES=horde` в [.filename]#Makefile# порта. Фреймворк установит " "соответствующие файлы в нужные места и автоматически сгенерирует plist во " "время установки." #. type: delimited block = 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:3505 msgid "" "The `USE_HORDE_BUILD` and `USE_HORDE_RUN` variables can be used to add " "buildtime and runtime dependencies on other Horde modules. See [." "filename]#Mk/Uses/horde.mk# for a complete list of available modules." msgstr "" "Переменные `USE_HORDE_BUILD` и `USE_HORDE_RUN` могут использоваться для " "добавления зависимостей времени сборки и выполнения от других модулей Horde. " "Полный список доступных модулей можно найти в [.filename]#Mk/Uses/horde.mk#." #. type: Block title #: documentation/content/en/books/porters-handbook/special/_index.adoc:3507 #, no-wrap msgid "Example Makefile for Horde Module" msgstr "Пример Makefile для модуля Horde" #. type: delimited block . 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:3515 #, no-wrap msgid "" "PORTNAME=\tHorde_Core\n" "DISTVERSION=\t2.14.0\n" "CATEGORIES=\tdevel www pear\n" msgstr "" "PORTNAME=\tHorde_Core\n" "DISTVERSION=\t2.14.0\n" "CATEGORIES=\tdevel www pear\n" #. type: delimited block . 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:3519 #, no-wrap msgid "" "MAINTAINER=\thorde@FreeBSD.org\n" "COMMENT=\tHorde Core Framework libraries\n" "WWW=\t\thttps://pear.horde.org/\n" msgstr "" "MAINTAINER=\thorde@FreeBSD.org\n" "COMMENT=\tHorde Core Framework libraries\n" "WWW=\t\thttps://pear.horde.org/\n" #. type: delimited block . 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:3523 #, no-wrap msgid "" "OPTIONS_DEFINE=\tKOLAB SOCKETS\n" "KOLAB_DESC=\tEnable Kolab server support\n" "SOCKETS_DESC=\tDepend on sockets PHP extension\n" msgstr "" "OPTIONS_DEFINE=\tKOLAB SOCKETS\n" "KOLAB_DESC=\tEnable Kolab server support\n" "SOCKETS_DESC=\tDepend on sockets PHP extension\n" #. type: delimited block . 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:3526 #, no-wrap msgid "" "USES=\thorde\n" "USE_PHP=\tsession\n" msgstr "" "USES=\thorde\n" "USE_PHP=\tsession\n" #. type: delimited block . 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:3530 #, no-wrap msgid "" "USE_HORDE_BUILD=\tHorde_Role\n" "USE_HORDE_RUN=\tHorde_Role Horde_History Horde_Pack \\\n" "\t\tHorde_Text_Filter Horde_View\n" msgstr "" "USE_HORDE_BUILD=\tHorde_Role\n" "USE_HORDE_RUN=\tHorde_Role Horde_History Horde_Pack \\\n" "\t\tHorde_Text_Filter Horde_View\n" #. type: delimited block . 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:3533 #, no-wrap msgid "" "KOLAB_USE=\tHORDE_RUN=Horde_Kolab_Server,Horde_Kolab_Session\n" "SOCKETS_USE=\tPHP=sockets\n" msgstr "" "KOLAB_USE=\tHORDE_RUN=Horde_Kolab_Server,Horde_Kolab_Session\n" "SOCKETS_USE=\tPHP=sockets\n" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:3542 msgid "" "As Horde modules are also PEAR modules they will also automatically be " "flavorized using crossref:flavors[flavors-auto-php,PHP flavors]." msgstr "" "Поскольку модули Horde также являются модулями PEAR, они будут автоматически " "преобразованы с использованием crossref:flavors[flavors-auto-php,флейворов " "PHP]." #. type: Title == #: documentation/content/en/books/porters-handbook/special/_index.adoc:3545 #, no-wrap msgid "Using Python" msgstr "Использование Python" #. type: delimited block = 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:3550 msgid "" "The Ports Collection supports parallel installation of multiple Python " "versions. Ports must use a correct `python` interpreter, according to the " "user-settable `PYTHON_VERSION`. Most prominently, this means replacing the " "path to `python` executable in scripts with the value of `PYTHON_CMD`." msgstr "" "Коллекция портов поддерживает параллельную установку нескольких версий " "Python. Порты должны использовать правильный интерпретатор `python` в " "соответствии с настраиваемым пользователем параметром `PYTHON_VERSION`. " "Важнее всего заменить путь к исполняемому файлу `python` в скриптах на " "значение `PYTHON_CMD`." #. type: delimited block = 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:3552 msgid "" "Ports that install files under `PYTHON_SITELIBDIR` must use the `pyXY-` " "package name prefix, so their package name embeds the version of Python they " "are installed into." msgstr "" "Порты, которые устанавливают файлы в `PYTHON_SITELIBDIR`, должны " "использовать префикс имени пакета `pyXY-`, чтобы их имя пакета включало " "версию Python, для которой они предназначены." #. type: delimited block . 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:3556 #, no-wrap msgid "PKGNAMEPREFIX=\t${PYTHON_PKGNAMEPREFIX}\n" msgstr "PKGNAMEPREFIX=\t${PYTHON_PKGNAMEPREFIX}\n" #. type: Block title #: documentation/content/en/books/porters-handbook/special/_index.adoc:3560 #, no-wrap msgid "Most Useful Variables for Ports That Use Python" msgstr "Наиболее полезные переменные для портов, использующих Python" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3564 #, no-wrap msgid "`USES=python`" msgstr "`USES=python`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3566 #, no-wrap msgid "The port needs Python. The minimal required version can be specified with values such as `3.10+`. Version ranges can also be specified by separating two version numbers with a dash: `USES=python:3.8-3.9`. Note that `USES=python` does _not_ cover Python 2.7, it needs to be requested explicitly with `USES=python:2.7+`." msgstr "Порту требуется Python. Минимально необходимая версия может быть указана с такими значениями, как `3.10+`. Диапазоны версий также можно указать, разделив две версии дефисом: `USES=python:3.8-3.9`. Обратите внимание, что `USES=python` _не_ включает Python 2.7, его нужно запрашивать явно с помощью `USES=python:2.7+`." #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3567 #, no-wrap msgid "`USE_PYTHON=distutils`" msgstr "`USE_PYTHON=distutils`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3569 #, no-wrap msgid "Use Python distutils for configuring, compiling, and installing. This is required when the port comes with [.filename]#setup.py#. This overrides the `do-build` and `do-install` targets and may also override `do-configure` if `GNU_CONFIGURE` is not defined. Additionally, it implies `USE_PYTHON=flavors`." msgstr "Используйте Python distutils для настройки, компиляции и установки. Это требуется, когда порт поставляется с [.filename]#setup.py#. Это переопределяет цели `do-build` и `do-install`, а также может переопределить `do-configure`, если `GNU_CONFIGURE` не определён. Кроме того, подразумевается `USE_PYTHON=flavors`." #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3570 #, no-wrap msgid "`USE_PYTHON=autoplist`" msgstr "`USE_PYTHON=autoplist`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3572 #, no-wrap msgid "Create the packaging list automatically. This also requires `USE_PYTHON=distutils` to be set." msgstr "Создать список пакетов автоматически. Это также требует установки `USE_PYTHON=distutils`." #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3573 #, no-wrap msgid "`USE_PYTHON=concurrent`" msgstr "`USE_PYTHON=concurrent`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3575 #, no-wrap msgid "The port will use an unique prefix, typically `PYTHON_PKGNAMEPREFIX` for certain directories, such as `EXAMPLESDIR` and `DOCSDIR` and also will append a suffix, the python version from `PYTHON_VER`, to binaries and scripts to be installed. This allows ports to be installed for different Python versions at the same time, which otherwise would install conflicting files." msgstr "Порт будет использовать уникальный префикс, обычно `PYTHON_PKGNAMEPREFIX`, для определённых каталогов, таких как `EXAMPLESDIR` и `DOCSDIR`, а также добавлять суффикс — версию Python из `PYTHON_VER` — к устанавливаемым бинарным файлам и скриптам. Это позволяет устанавливать порты для разных версий Python одновременно, что в противном случае приводило бы к конфликту файлов." #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3576 #, no-wrap msgid "`USE_PYTHON=flavors`" msgstr "`USE_PYTHON=flavors`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3578 #, no-wrap msgid "The port does not use distutils but still supports multiple Python versions. `FLAVORS` will be set to the supported Python versions. See crossref:flavors[flavors-auto-python,`USES`=python and Flavors] for more information." msgstr "Порт не использует distutils, но по-прежнему поддерживает несколько версий Python. `FLAVORS` будет установлен в поддерживаемые версии Python. Дополнительную информацию см. в crossref:flavors[flavors-auto-python,`USES`=python и флейворы]." #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3579 #, no-wrap msgid "`USE_PYTHON=optsuffix`" msgstr "`USE_PYTHON=optsuffix`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3581 #, no-wrap msgid "If the current Python version is not the default version, the port will gain `PKGNAMESUFFIX=${PYTHON_PKGNAMESUFFIX}`. Only useful with flavors." msgstr "Если текущая версия Python не является версией по умолчанию, порт получит `PKGNAMESUFFIX=${PYTHON_PKGNAMESUFFIX}`. Полезно только для флейворов." #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3582 #, no-wrap msgid "`USE_PYTHON=pep517`" msgstr "`USE_PYTHON=pep517`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3584 #, no-wrap msgid "Support building and installing wheels according to the PEP-517 standard." msgstr "Поддержка построения и инсталляции wheel в соответствии со стандартом PEP-517." #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3585 #, no-wrap msgid "`PYTHON_PKGNAMEPREFIX`" msgstr "`PYTHON_PKGNAMEPREFIX`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3587 #, no-wrap msgid "Used as a `PKGNAMEPREFIX` to distinguish packages for different Python versions. Example: `py27-`" msgstr "Используется как `PKGNAMEPREFIX` для различения пакетов разных версий Python. Пример: `py27-`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3588 #, no-wrap msgid "`PYTHON_SITELIBDIR`" msgstr "`PYTHON_SITELIBDIR`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3590 #, no-wrap msgid "Location of the site-packages tree, that contains installation path of Python (usually `LOCALBASE`). `PYTHON_SITELIBDIR` can be very useful when installing Python modules." msgstr "Расположение дерева site-packages, которое содержит путь установки Python (обычно `LOCALBASE`). `PYTHON_SITELIBDIR` может быть очень полезно при установке модулей Python." #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3591 #, no-wrap msgid "`PYTHONPREFIX_SITELIBDIR`" msgstr "`PYTHONPREFIX_SITELIBDIR`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3593 #, no-wrap msgid "The PREFIX-clean variant of PYTHON_SITELIBDIR. Always use `%%PYTHON_SITELIBDIR%%` in [.filename]#pkg-plist# when possible. The default value of `%%PYTHON_SITELIBDIR%%` is `lib/python%%PYTHON_VERSION%%/site-packages`" msgstr "Вариант PREFIX-clean для PYTHON_SITELIBDIR. Всегда используйте `%%PYTHON_SITELIBDIR%%` в [.filename]#pkg-plist#, когда это возможно. Значение по умолчанию для `%%PYTHON_SITELIBDIR%%` — `lib/python%%PYTHON_VERSION%%/site-packages`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3594 #, no-wrap msgid "`PYTHON_CMD`" msgstr "`PYTHON_CMD`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3595 #, no-wrap msgid "Python interpreter command line, including version number." msgstr "Интерпретатор командной строки Python, включая номер версии." #. type: Block title #: documentation/content/en/books/porters-handbook/special/_index.adoc:3598 #, no-wrap msgid "Python Module Dependency Helpers" msgstr "Помощники зависимостей модуля Python" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3602 #, no-wrap msgid "`PYNUMERIC`" msgstr "`PYNUMERIC`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3604 #, no-wrap msgid "Dependency line for numeric extension." msgstr "Строка зависимости для числового расширения." #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3605 #, no-wrap msgid "`PYNUMPY`" msgstr "`PYNUMPY`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3607 #, no-wrap msgid "Dependency line for the new numeric extension, numpy. (PYNUMERIC is deprecated by upstream vendor)." msgstr "Строка зависимости для нового числового расширения, numpy. (PYNUMERIC устарел у вендора)." #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3608 #, no-wrap msgid "`PYXML`" msgstr "`PYXML`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3610 #, no-wrap msgid "Dependency line for XML extension (not needed for Python 2.0 and higher as it is also in base distribution)." msgstr "Строка зависимости для расширения XML (не требуется для Python 2.0 и выше, так как оно также входит в базовую поставку)." #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3611 #, no-wrap msgid "`PY_ENUM34`" msgstr "`PY_ENUM34`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3613 #, no-wrap msgid "Conditional dependency on package:devel/py-enum34[] depending on the Python version." msgstr "Условная зависимость от пакета package:devel/py-enum34[] в зависимости от версии Python." #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3614 #, no-wrap msgid "`PY_ENUM_COMPAT`" msgstr "`PY_ENUM_COMPAT`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3616 #, no-wrap msgid "Conditional dependency on package:devel/py-enum-compat[] depending on the Python version." msgstr "Условная зависимость от пакета package:devel/py-enum-compat[] в зависимости от версии Python." #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3617 #, no-wrap msgid "`PY_PATHLIB`" msgstr "`PY_PATHLIB`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3619 #, no-wrap msgid "Conditional dependency on package:devel/py-pathlib[] depending on the Python version." msgstr "Условная зависимость от пакета package:devel/py-pathlib[] в зависимости от версии Python." #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3620 #, no-wrap msgid "`PY_IPADDRESS`" msgstr "`PY_IPADDRESS`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3622 #, no-wrap msgid "Conditional dependency on package:net/py-ipaddress[] depending on the Python version." msgstr "Условная зависимость от пакета package:net/py-ipaddress[] в зависимости от версии Python." #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3623 #, no-wrap msgid "`PY_FUTURES`" msgstr "`PY_FUTURES`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3624 #, no-wrap msgid "Conditional dependency on package:devel/py-futures[] depending on the Python version." msgstr "Условная зависимость от пакета package:devel/py-futures[] в зависимости от версии Python." #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:3627 msgid "" "A complete list of available variables can be found in [.filename]#/usr/" "ports/Mk/Uses/python.mk#." msgstr "" "Полный список доступных переменных можно найти в [.filename]#/usr/ports/Mk/" "Uses/python.mk#." #. type: delimited block = 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:3632 msgid "" "All dependencies to Python ports using crossref:flavors[flavors-auto-python," "Python flavors] (either with `USE_PYTHON=distutils` or `USE_PYTHON=flavors`) " "must have the Python flavor appended to their origin using `@${PY_FLAVOR}`. " "See crossref:special[python-Makefile,Makefile for a Simple Python Module]." msgstr "" "Все зависимости для портов Python, использующих crossref:flavors[flavors-" "auto-python,флейворы Python] (с `USE_PYTHON=distutils` или " "`USE_PYTHON=flavors`), должны иметь флейвор Python, добавленную к их origin " "с помощью `@${PY_FLAVOR}`. См. crossref:special[python-Makefile,Makefile для " "простого модуля Python]." #. type: Block title #: documentation/content/en/books/porters-handbook/special/_index.adoc:3635 #, no-wrap msgid "Makefile for a Simple Python Module" msgstr "Makefile для Простого Модуля Python" #. type: delimited block . 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:3643 #, no-wrap msgid "" "PORTNAME=\tsample\n" "DISTVERSION=\t1.2.3\n" "CATEGORIES=\tdevel\n" msgstr "" "PORTNAME=\tsample\n" "DISTVERSION=\t1.2.3\n" "CATEGORIES=\tdevel\n" #. type: delimited block . 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:3647 #, no-wrap msgid "" "MAINTAINER=\tfred.bloggs@example.com\n" "COMMENT=\tPython sample module\n" "WWW=\t\thttps://example.com/project/sample/\n" msgstr "" "MAINTAINER=\tfred.bloggs@example.com\n" "COMMENT=\tPython sample module\n" "WWW=\t\thttps://example.com/project/sample/\n" #. type: delimited block . 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:3649 #, no-wrap msgid "RUN_DEPENDS=\t${PYTHON_PKGNAMEPREFIX}six>0:devel/py-six@${PY_FLAVOR}\n" msgstr "RUN_DEPENDS=\t${PYTHON_PKGNAMEPREFIX}six>0:devel/py-six@${PY_FLAVOR}\n" #. type: delimited block . 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:3652 #, no-wrap msgid "" "USES=\t\tpython\n" "USE_PYTHON=\tautoplist distutils\n" msgstr "" "USES=\t\tpython\n" "USE_PYTHON=\tautoplist distutils\n" #. type: delimited block = 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:3662 msgid "" "Some Python applications claim to have `DESTDIR` support (which would be " "required for staging) but it is broken (Mailman up to 2.1.16, for " "instance). This can be worked around by recompiling the scripts. This can " "be done, for example, in the `post-build` target. Assuming the Python " "scripts are supposed to reside in `PYTHONPREFIX_SITELIBDIR` after " "installation, this solution can be applied:" msgstr "" "Некоторые приложения на Python заявляют о поддержке `DESTDIR` (что " "необходимо для промежуточной сборки), но она не работает (например, Mailman " "до версии 2.1.16). Это можно обойти, перекомпилировав скрипты. Это можно " "сделать, например, в цели `post-build`. Предполагая, что Python-скрипты " "должны находиться в `PYTHONPREFIX_SITELIBDIR` после установки, можно " "применить следующее решение:" #. type: delimited block . 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:3668 #, no-wrap msgid "" "(cd ${STAGEDIR}${PREFIX} \\\n" " && ${PYTHON_CMD} ${PYTHON_LIBDIR}/compileall.py \\\n" " -d ${PREFIX} -f ${PYTHONPREFIX_SITELIBDIR:S;${PREFIX}/;;})\n" msgstr "" "(cd ${STAGEDIR}${PREFIX} \\\n" " && ${PYTHON_CMD} ${PYTHON_LIBDIR}/compileall.py \\\n" " -d ${PREFIX} -f ${PYTHONPREFIX_SITELIBDIR:S;${PREFIX}/;;})\n" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:3671 msgid "" "This recompiles the sources with a path relative to the stage directory, and " "prepends the value of `PREFIX` to the file name recorded in the byte-" "compiled output file by `-d`. `-f` is required to force recompilation, and " "the `:S;${PREFIX}/;;` strips prefixes from the value of " "`PYTHONPREFIX_SITELIBDIR` to make it relative to `PREFIX`." msgstr "" "Это перекомпилирует исходники с путём, относительным к каталогу стадии, и " "добавляет значение `PREFIX` к имени файла, записанному в байт-" "компилированном выходном файле с помощью `-d`. `-f` требуется для " "принудительной перекомпиляции, а `:S;${PREFIX}/;;` удаляет префиксы из " "значения `PYTHONPREFIX_SITELIBDIR`, чтобы сделать его относительным к " "`PREFIX`." #. type: Title == #: documentation/content/en/books/porters-handbook/special/_index.adoc:3673 #, no-wrap msgid "Using Tcl/Tk" msgstr "Использование Tcl/Tk" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:3678 msgid "" "The Ports Collection supports parallel installation of multiple Tcl/Tk " "versions. Ports should try to support at least the default Tcl/Tk version " "and higher with `USES=tcl`. It is possible to specify the desired version " "of `tcl` by appending `:_xx_`, for example, `USES=tcl:85`." msgstr "" "Коллекция Ports поддерживает параллельную установку нескольких версий Tcl/" "Tk. Порты должны стараться поддерживать как минимум версию Tcl/Tk по " "умолчанию и выше с помощью `USES=tcl`. Можно указать желаемую версию `tcl`, " "добавив `:_xx_`, например, `USES=tcl:85`." #. type: Block title #: documentation/content/en/books/porters-handbook/special/_index.adoc:3680 #, no-wrap msgid "The Most Useful Read-Only Variables for Ports That Use Tcl/Tk" msgstr "Самые полезные переменные только для чтения для портов, использующих Tcl/Tk" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3684 #, no-wrap msgid "`TCL_VER`" msgstr "`TCL_VER`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3686 #, no-wrap msgid "chosen major.minor version of Tcl" msgstr "выбранная версия Tcl major.minor" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3687 #, no-wrap msgid "`TCLSH`" msgstr "`TCLSH`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3689 #, no-wrap msgid "full path of the Tcl interpreter" msgstr "полный путь к интерпретатору Tcl" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3690 #, no-wrap msgid "`TCL_LIBDIR`" msgstr "`TCL_LIBDIR`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3692 #, no-wrap msgid "path of the Tcl libraries" msgstr "путь к библиотекам Tcl" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3693 #, no-wrap msgid "`TCL_INCLUDEDIR`" msgstr "`TCL_INCLUDEDIR`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3695 #, no-wrap msgid "path of the Tcl C header files" msgstr "путь к заголовочным файлам Tcl C" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3696 #, no-wrap msgid "`TCL_PKG_LIB_PREFIX`" msgstr "`TCL_PKG_LIB_PREFIX`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3698 #, no-wrap msgid "Library prefix, as per TIP595" msgstr "Префикс библиотеки, согласно TIP595" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3699 #, no-wrap msgid "`TCL_PKG_STUB_POSTFIX`" msgstr "`TCL_PKG_STUB_POSTFIX`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3701 #, no-wrap msgid "Stub library postfix" msgstr "Заглушка библиотеки postfix" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3702 #, no-wrap msgid "`TK_VER`" msgstr "`TK_VER`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3704 #, no-wrap msgid "chosen major.minor version of Tk" msgstr "выбранная версия Tk major.minor" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3705 #, no-wrap msgid "`WISH`" msgstr "`WISH`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3707 #, no-wrap msgid "full path of the Tk interpreter" msgstr "полный путь к интерпретатору Tk" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3708 #, no-wrap msgid "`TK_LIBDIR`" msgstr "`TK_LIBDIR`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3710 #, no-wrap msgid "path of the Tk libraries" msgstr "путь к библиотекам Tk" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3711 #, no-wrap msgid "`TK_INCLUDEDIR`" msgstr "`TK_INCLUDEDIR`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3712 #, no-wrap msgid "path of the Tk C header files" msgstr "путь к заголовочным файлам Tk C" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:3716 msgid "" "See the crossref:uses[uses-tcl,`USES=tcl`] and crossref:uses[uses-tk," "`USES=tk`] of crossref:uses[uses,Using `USES` Macros] for a full description " "of those variables. A complete list of those variables is available in [." "filename]#/usr/ports/Mk/Uses/tcl.mk#." msgstr "" "См. crossref:uses[uses-tcl,`USES=tcl`] и crossref:uses[uses-tk,`USES=tk`] в " "crossref:uses[uses,Использование макросов `USES`] для полного описания этих " "переменных. Полный список этих переменных доступен в [.filename]#/usr/ports/" "Mk/Uses/tcl.mk#." #. type: Title == #: documentation/content/en/books/porters-handbook/special/_index.adoc:3718 #, no-wrap msgid "Using SDL" msgstr "Использование SDL" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:3721 msgid "" "`USE_SDL` is used to autoconfigure the dependencies for ports which use an " "SDL based library like package:devel/sdl12[] and package:graphics/" "sdl_image[]." msgstr "" "`USE_SDL` используется для автоматической настройки зависимостей для портов, " "которые используют библиотеку на основе SDL, такие как package:devel/sdl12[] " "и package:graphics/sdl_image[]." #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:3723 msgid "These SDL libraries for version 1.2 are recognized:" msgstr "Эти библиотеки SDL для версии 1.2 распознаются:" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:3725 msgid "sdl: package:devel/sdl12[]" msgstr "sdl: package:devel/sdl12[]" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:3726 msgid "console: package:devel/sdl_console[]" msgstr "console: package:devel/sdl_console[]" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:3727 msgid "gfx: package:graphics/sdl_gfx[]" msgstr "gfx: package:graphics/sdl_gfx[]" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:3728 msgid "image: package:graphics/sdl_image[]" msgstr "image: package:graphics/sdl_image[]" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:3729 msgid "mixer: package:audio/sdl_mixer[]" msgstr "mixer: package:audio/sdl_mixer[]" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:3730 msgid "mm: package:devel/sdlmm[]" msgstr "mm: package:devel/sdlmm[]" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:3731 msgid "net: package:net/sdl_net[]" msgstr "net: package:net/sdl_net[]" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:3732 msgid "pango: package:x11-toolkits/sdl_pango[]" msgstr "pango: package:x11-toolkits/sdl_pango[]" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:3733 msgid "sound: package:audio/sdl_sound[]" msgstr "sound: package:audio/sdl_sound[]" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:3734 msgid "ttf: package:graphics/sdl_ttf[]" msgstr "ttf: package:graphics/sdl_ttf[]" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:3736 msgid "These SDL libraries for version 2.0 are recognized:" msgstr "Эти библиотеки SDL для версии 2.0 распознаются:" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:3738 msgid "sdl: package:devel/sdl20[]" msgstr "sdl: package:devel/sdl20[]" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:3739 msgid "gfx: package:graphics/sdl2_gfx[]" msgstr "gfx: package:graphics/sdl2_gfx[]" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:3740 msgid "image: package:graphics/sdl2_image[]" msgstr "image: package:graphics/sdl2_image[]" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:3741 msgid "mixer: package:audio/sdl2_mixer[]" msgstr "mixer: package:audio/sdl2_mixer[]" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:3742 msgid "net: package:net/sdl2_net[]" msgstr "net: package:net/sdl2_net[]" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:3743 msgid "ttf: package:graphics/sdl2_ttf[]" msgstr "ttf: package:graphics/sdl2_ttf[]" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:3745 msgid "" "Therefore, if a port has a dependency on package:net/sdl_net[] and package:" "audio/sdl_mixer[], the syntax will be:" msgstr "" "Следовательно, если порт зависит от package:net/sdl_net[] и package:audio/" "sdl_mixer[], синтаксис будет следующим:" #. type: delimited block . 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:3749 #, no-wrap msgid "USE_SDL=\tnet mixer\n" msgstr "USE_SDL=\tnet mixer\n" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:3752 msgid "" "The dependency package:devel/sdl12[], which is required by package:net/" "sdl_net[] and package:audio/sdl_mixer[], is automatically added as well." msgstr "" "Пакет зависимости package:devel/sdl12[], который требуется для package:net/" "sdl_net[] и package:audio/sdl_mixer[], также автоматически добавляется." #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:3754 msgid "Using `USE_SDL` with entries for SDL 1.2, it will automatically:" msgstr "Использование `USE_SDL` с указанием SDL 1.2 автоматически:" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:3756 msgid "Add a dependency on sdl12-config to `BUILD_DEPENDS`" msgstr "Добавить зависимость от sdl12-config в `BUILD_DEPENDS`" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:3757 msgid "Add the variable `SDL_CONFIG` to `CONFIGURE_ENV`" msgstr "Добавьте переменную `SDL_CONFIG` в `CONFIGURE_ENV`" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:3758 #: documentation/content/en/books/porters-handbook/special/_index.adoc:3764 msgid "Add the dependencies of the selected libraries to `LIB_DEPENDS`" msgstr "Добавьте зависимости выбранных библиотек в `LIB_DEPENDS`" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:3760 msgid "Using `USE_SDL` with entries for SDL 2.0, it will automatically:" msgstr "Используя `USE_SDL` с записями для SDL 2.0, это автоматически:" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:3762 msgid "Add a dependency on sdl2-config to `BUILD_DEPENDS`" msgstr "Добавить зависимость от sdl2-config в `BUILD_DEPENDS`" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:3763 msgid "Add the variable `SDL2_CONFIG` to `CONFIGURE_ENV`" msgstr "Добавьте переменную `SDL2_CONFIG` в `CONFIGURE_ENV`" #. type: Title == #: documentation/content/en/books/porters-handbook/special/_index.adoc:3767 #, no-wrap msgid "Using wxWidgets" msgstr "Использование wxWidgets" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:3770 msgid "" "This section describes the status of the wxWidgets libraries in the ports " "tree and its integration with the ports system." msgstr "" "Этот раздел описывает состояние библиотек wxWidgets в дереве портов и их " "интеграцию с системой портов." #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:3776 msgid "" "There are many versions of the wxWidgets libraries which conflict between " "them (install files under the same name). In the ports tree this problem " "has been solved by installing each version under a different name using " "version number suffixes." msgstr "" "Существует множество версий библиотек wxWidgets, которые конфликтуют между " "собой (устанавливают файлы с одинаковыми именами). В дереве портов эта " "проблема решена путем установки каждой версии под разными именами с " "использованием суффиксов номеров версий." #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:3782 msgid "" "The obvious disadvantage of this is that each application has to be modified " "to find the expected version. Fortunately, most of the applications call " "the `wx-config` script to determine the necessary compiler and linker " "flags. The script is named differently for every available version. " "Majority of applications respect an environment variable, or accept a " "configure argument, to specify which `wx-config` script to call. Otherwise " "they have to be patched." msgstr "" "Очевидный недостаток этого подхода заключается в том, что каждое приложение " "необходимо модифицировать для поиска нужной версии. К счастью, большинство " "приложений вызывают скрипт `wx-config` для определения необходимых флагов " "компилятора и компоновщика. Имя этого скрипта отличается для каждой " "доступной версии. Большинство приложений учитывают переменную окружения или " "принимают аргумент configure, чтобы указать, какой скрипт `wx-config` " "вызывать. В противном случае их необходимо патчить." #. type: Title === #: documentation/content/en/books/porters-handbook/special/_index.adoc:3784 #: documentation/content/en/books/porters-handbook/special/_index.adoc:4085 #: documentation/content/en/books/porters-handbook/special/_index.adoc:4304 #, no-wrap msgid "Version Selection" msgstr "Выбор версии" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:3787 msgid "" "To make the port use a specific version of wxWidgets there are two variables " "available for defining (if only one is defined the other will be set to a " "default value):" msgstr "" "Чтобы порт использовал определённую версию wxWidgets, доступны две " "переменные для определения (если задана только одна, другая будет " "установлена в значение по умолчанию):" #. type: Block title #: documentation/content/en/books/porters-handbook/special/_index.adoc:3789 #, no-wrap msgid "Variables to Select wxWidgets Versions" msgstr "Переменные для выбора версий wxWidgets" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3796 #, no-wrap msgid "Default value" msgstr "Значение по умолчанию" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3797 #, no-wrap msgid "`USE_WX`" msgstr "`USE_WX`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3798 #, no-wrap msgid "List of versions the port can use" msgstr "Список версий, которые порт может использовать" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3800 #, no-wrap msgid "All available versions" msgstr "Все доступные версии" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3801 #, no-wrap msgid "`USE_WX_NOT`" msgstr "`USE_WX_NOT`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3802 #, no-wrap msgid "List of versions the port cannot use" msgstr "Список версий, которые порт не может использовать" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3803 #, no-wrap msgid "None" msgstr "Ничего" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:3806 msgid "" "The available wxWidgets versions and the corresponding ports in the tree are:" msgstr "Доступные версии wxWidgets и соответствующие порты в дереве:" #. type: Block title #: documentation/content/en/books/porters-handbook/special/_index.adoc:3808 #, no-wrap msgid "Available wxWidgets Versions" msgstr "Доступные версии wxWidgets" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3812 #, no-wrap msgid "Version" msgstr "Версия" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3814 #, no-wrap msgid "Port" msgstr "Порт" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3815 #: documentation/content/en/books/porters-handbook/special/_index.adoc:3833 #, no-wrap msgid "`2.8`" msgstr "`2.8`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3817 #, no-wrap msgid "package:x11-toolkits/wxgtk28[]" msgstr "package:x11-toolkits/wxgtk28[]" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3818 #, no-wrap msgid "`3.0`" msgstr "`3.0`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3819 #, no-wrap msgid "package:x11-toolkits/wxgtk30[]" msgstr "package:x11-toolkits/wxgtk30[]" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:3822 msgid "" "The variables in crossref:special[wx-ver-sel-table,Variables to Select " "wxWidgets Versions] can be set to one or more of these combinations " "separated by spaces:" msgstr "" "Переменные в crossref:special[wx-ver-sel-table,Переменные для выбора версий " "wxWidgets] могут быть установлены в одну или несколько комбинаций, " "разделенных пробелами:" #. type: Block title #: documentation/content/en/books/porters-handbook/special/_index.adoc:3824 #, no-wrap msgid "wxWidgets Version Specifications" msgstr "Спецификации версий wxWidgets" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3830 #, no-wrap msgid "Example" msgstr "Пример" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3831 #, no-wrap msgid "Single version" msgstr "Единственная версия" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3834 #, no-wrap msgid "Ascending range" msgstr "Возрастающий диапазон" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3836 #, no-wrap msgid "`2.8+`" msgstr "`2.8+`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3837 #, no-wrap msgid "Descending range" msgstr "Нисходящий диапазон" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3839 #, no-wrap msgid "`3.0-`" msgstr "`3.0-`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3840 #, no-wrap msgid "Full range (must be ascending)" msgstr "Полный диапазон (должен быть возрастающим)" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3841 #: documentation/content/en/books/porters-handbook/special/_index.adoc:3884 #, no-wrap msgid "`2.8-3.0`" msgstr "`2.8-3.0`" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:3845 msgid "" "There are also some variables to select the preferred versions from the " "available ones. They can be set to a list of versions, the first ones will " "have higher priority." msgstr "" "Существуют также переменные для выбора предпочтительных версий из доступных. " "Их можно установить в виде списка версий, где первые будут иметь более " "высокий приоритет." #. type: Block title #: documentation/content/en/books/porters-handbook/special/_index.adoc:3846 #, no-wrap msgid "Variables to Select Preferred wxWidgets Versions" msgstr "Переменные для выбора предпочтительных версий wxWidgets" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3852 #, no-wrap msgid "Designed for" msgstr "Предназначен для" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3853 #, no-wrap msgid "`WANT_WX_VER`" msgstr "`WANT_WX_VER`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3855 #, no-wrap msgid "the port" msgstr "порт" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3856 #, no-wrap msgid "`WITH_WX_VER`" msgstr "`WITH_WX_VER`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3857 #, no-wrap msgid "the user" msgstr "пользователь" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:3864 msgid "" "There are other applications that, while not being wxWidgets libraries, are " "related to them. These applications can be specified in `WX_COMPS`. These " "components are available:" msgstr "" "Существуют другие приложения, которые, не являясь библиотеками wxWidgets, " "связаны с ними. Эти приложения можно указать в `WX_COMPS`. Доступны " "следующие компоненты:" #. type: Block title #: documentation/content/en/books/porters-handbook/special/_index.adoc:3866 #, no-wrap msgid "Available wxWidgets Components" msgstr "Доступные компоненты wxWidgets" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3873 #, no-wrap msgid "Version restriction" msgstr "Ограничение версии" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3874 #: documentation/content/en/books/porters-handbook/special/_index.adoc:3917 #, no-wrap msgid "`wx`" msgstr "`wx`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3875 #, no-wrap msgid "main library" msgstr "основная библиотека" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3877 #, no-wrap msgid "none" msgstr "none" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3878 #: documentation/content/en/books/porters-handbook/special/_index.adoc:3920 #, no-wrap msgid "`contrib`" msgstr "`contrib`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3879 #, no-wrap msgid "contributed libraries" msgstr "сторонние библиотеки" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3881 #, no-wrap msgid "`none`" msgstr "`none`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3882 #: documentation/content/en/books/porters-handbook/special/_index.adoc:3923 #, no-wrap msgid "`python`" msgstr "`python`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3883 #, no-wrap msgid "wxPython (Python bindings)" msgstr "wxPython (интерфейс Python)" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:3889 msgid "" "The dependency type can be selected for each component by adding a suffix " "separated by a semicolon. If not present then a default type will be used " "(see crossref:special[wx-def-dep-types,Default wxWidgets Dependency " "Types]). These types are available:" msgstr "" "Тип зависимости может быть выбран для каждого компонента путем добавления " "суффикса, разделенного точкой с запятой. Если он отсутствует, будет " "использоваться тип по умолчанию (см. crossref:special[wx-def-dep-types,Типы " "зависимостей wxWidgets по умолчанию]). Доступны следующие типы:" #. type: Block title #: documentation/content/en/books/porters-handbook/special/_index.adoc:3891 #, no-wrap msgid "Available wxWidgets Dependency Types" msgstr "Доступные типы зависимостей wxWidgets" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3898 #, no-wrap msgid "`build`" msgstr "`build`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3900 #, no-wrap msgid "Component is required for building, equivalent to `BUILD_DEPENDS`" msgstr "Компонент необходим для сборки, эквивалентен `BUILD_DEPENDS`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3901 #: documentation/content/en/books/porters-handbook/special/_index.adoc:3925 #, no-wrap msgid "`run`" msgstr "`run`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3903 #, no-wrap msgid "Component is required for running, equivalent to `RUN_DEPENDS`" msgstr "Компонент необходим для запуска, эквивалентно `RUN_DEPENDS`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3904 #: documentation/content/en/books/porters-handbook/special/_index.adoc:3919 #: documentation/content/en/books/porters-handbook/special/_index.adoc:3922 #: documentation/content/en/books/porters-handbook/special/_index.adoc:3928 #: documentation/content/en/books/porters-handbook/special/_index.adoc:3930 #, no-wrap msgid "`lib`" msgstr "`lib`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3905 #, no-wrap msgid "Component is required for building and running, equivalent to `LIB_DEPENDS`" msgstr "Компонент необходим для сборки и запуска, эквивалентен `LIB_DEPENDS`" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:3908 msgid "The default values for the components are detailed in this table:" msgstr "Значения по умолчанию для компонентов подробно описаны в этой таблице:" #. type: Block title #: documentation/content/en/books/porters-handbook/special/_index.adoc:3910 #, no-wrap msgid "Default wxWidgets Dependency Types" msgstr "Типы зависимостей wxWidgets по умолчанию" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3916 #, no-wrap msgid "Dependency type" msgstr "Тип зависимости" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:3926 #, no-wrap msgid "`mozilla`" msgstr "`mozilla`" #. type: Block title #: documentation/content/en/books/porters-handbook/special/_index.adoc:3933 #, no-wrap msgid "Selecting wxWidgets Components" msgstr "Выбор компонентов wxWidgets" #. type: delimited block = 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:3937 msgid "" "This fragment corresponds to a port which uses wxWidgets version `2.4` and " "its contributed libraries." msgstr "" "Этот фрагмент соответствует порту, который использует wxWidgets версии `2.4` " "и дополнительные библиотеки." #. type: delimited block . 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:3942 #, no-wrap msgid "" "USE_WX=\t\t2.8\n" "WX_COMPS=\twx contrib\n" msgstr "" "USE_WX=\t\t2.8\n" "WX_COMPS=\twx contrib\n" #. type: Title === #: documentation/content/en/books/porters-handbook/special/_index.adoc:3947 #, no-wrap msgid "Detecting Installed Versions" msgstr "Обнаружение установленных версий" #. type: delimited block = 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:3952 msgid "" "To detect an installed version, define `WANT_WX`. If it is not set to a " "specific version then the components will have a version suffix. `HAVE_WX` " "will be filled after detection." msgstr "" "Для определения установленной версии определите `WANT_WX`. Если значение не " "задано для конкретной версии, компоненты будут иметь суффикс версии. " "`HAVE_WX` будет заполнен после обнаружения." #. type: Block title #: documentation/content/en/books/porters-handbook/special/_index.adoc:3954 #, no-wrap msgid "Detecting Installed wxWidgets Versions and Components" msgstr "Обнаружение установленных версий и компонентов wxWidgets" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:3958 msgid "" "This fragment can be used in a port that uses wxWidgets if it is installed, " "or an option is selected." msgstr "" "Этот фрагмент может использоваться в порте, который использует wxWidgets, " "если они установлены или выбран соответствующий параметр." #. type: delimited block . 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:3962 #, no-wrap msgid "WANT_WX=\tyes\n" msgstr "WANT_WX=\tyes\n" #. type: delimited block . 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:3964 #: documentation/content/en/books/porters-handbook/special/_index.adoc:3980 #: documentation/content/en/books/porters-handbook/special/_index.adoc:4033 #: documentation/content/en/books/porters-handbook/special/_index.adoc:4623 #, no-wrap msgid ".include \n" msgstr ".include \n" #. type: delimited block . 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:3969 #, no-wrap msgid "" ".if defined(WITH_WX) || !empty(PORT_OPTIONS:MWX) || !empty(HAVE_WX:Mwx-2.8)\n" "USE_WX=\t\t\t2.8\n" "CONFIGURE_ARGS+=\t--enable-wx\n" ".endif\n" msgstr "" ".if defined(WITH_WX) || !empty(PORT_OPTIONS:MWX) || !empty(HAVE_WX:Mwx-2.8)\n" "USE_WX=\t\t\t2.8\n" "CONFIGURE_ARGS+=\t--enable-wx\n" ".endif\n" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:3972 msgid "" "This fragment can be used in a port that enables wxPython support if it is " "installed or if an option is selected, in addition to wxWidgets, both " "version `2.8`." msgstr "" "Этот фрагмент может использоваться в порте, который включает поддержку " "wxPython, если она установлена или выбрана соответствующая опция, в " "дополнение к wxWidgets, обе версии `2.8`." #. type: delimited block . 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:3978 #, no-wrap msgid "" "USE_WX=\t\t2.8\n" "WX_COMPS=\twx\n" "WANT_WX=\t2.8\n" msgstr "" "USE_WX=\t\t2.8\n" "WX_COMPS=\twx\n" "WANT_WX=\t2.8\n" #. type: delimited block . 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:3985 #, no-wrap msgid "" ".if defined(WITH_WXPYTHON) || !empty(PORT_OPTIONS:MWXPYTHON) || !empty(HAVE_WX:Mpython)\n" "WX_COMPS+=\t\tpython\n" "CONFIGURE_ARGS+=\t--enable-wxpython\n" ".endif\n" msgstr "" ".if defined(WITH_WXPYTHON) || !empty(PORT_OPTIONS:MWXPYTHON) || !empty(HAVE_WX:Mpython)\n" "WX_COMPS+=\t\tpython\n" "CONFIGURE_ARGS+=\t--enable-wxpython\n" ".endif\n" #. type: Title === #: documentation/content/en/books/porters-handbook/special/_index.adoc:3990 #: documentation/content/en/books/porters-handbook/special/_index.adoc:4160 #: documentation/content/en/books/porters-handbook/special/_index.adoc:4395 #, no-wrap msgid "Defined Variables" msgstr "Переменные, определённые в фреймворке" #. type: delimited block = 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:3993 msgid "" "These variables are available in the port (after defining one from crossref:" "special[wx-ver-sel-table,Variables to Select wxWidgets Versions])." msgstr "" "Эти переменные доступны в порте (после определения одной из crossref:" "special[wx-ver-sel-table,переменных для выбора версий wxWidgets])." #. type: Block title #: documentation/content/en/books/porters-handbook/special/_index.adoc:3995 #, no-wrap msgid "Variables Defined for Ports That Use wxWidgets" msgstr "Переменные, определённые для портов, использующих wxWidgets" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:4002 #, no-wrap msgid "`WX_CONFIG`" msgstr "`WX_CONFIG`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:4004 #, no-wrap msgid "The path to the wxWidgets`wx-config` script (with different name)" msgstr "Путь к скрипту `wx-config` wxWidgets (с другим именем)" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:4005 #, no-wrap msgid "`WXRC_CMD`" msgstr "`WXRC_CMD`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:4007 #, no-wrap msgid "The path to the wxWidgets`wxrc` program (with different name)" msgstr "Путь к программе `wxrc` wxWidgets (с другим именем)" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:4008 #, no-wrap msgid "`WX_VERSION`" msgstr "`WX_VERSION`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:4009 #, no-wrap msgid "The wxWidgets version that is going to be used (for example, `2.6`)" msgstr "Версия wxWidgets, которая будет использоваться (например, `2.6`)" #. type: Title === #: documentation/content/en/books/porters-handbook/special/_index.adoc:4012 #, no-wrap msgid "Processing in [.filename]#bsd.port.pre.mk#" msgstr "Обработка в [.filename]#bsd.port.pre.mk#" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:4015 msgid "" "Define `WX_PREMK` to be able to use the variables right after including [." "filename]#bsd.port.pre.mk#." msgstr "" "Определите `WX_PREMK`, чтобы иметь возможность использовать переменные сразу " "после включения [.filename]#bsd.port.pre.mk#." #. type: delimited block = 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:4019 msgid "" "When defining `WX_PREMK`, then the version, dependencies, components and " "defined variables will not change if modifying the wxWidgets port variables " "_after_ including [.filename]#bsd.port.pre.mk#." msgstr "" "При определении `WX_PREMK` версия, зависимости, компоненты и определённые " "переменные не изменятся при модификации переменных порта wxWidgets _после_ " "включения [.filename]#bsd.port.pre.mk#." #. type: Block title #: documentation/content/en/books/porters-handbook/special/_index.adoc:4022 #, no-wrap msgid "Using wxWidgets Variables in Commands" msgstr "Использование переменных wxWidgets в командах" #. type: delimited block = 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:4026 msgid "" "This fragment illustrates the use of `WX_PREMK` by running the `wx-config` " "script to obtain the full version string, assign it to a variable and pass " "it to the program." msgstr "" "Этот фрагмент иллюстрирует использование `WX_PREMK` путем запуска скрипта " "`wx-config` для получения полной строки версии, присвоения её переменной и " "передачи в программу." #. type: delimited block . 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:4031 #, no-wrap msgid "" "USE_WX=\t\t2.8\n" "WX_PREMK=\tyes\n" msgstr "" "USE_WX=\t\t2.8\n" "WX_PREMK=\tyes\n" #. type: delimited block . 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:4036 #, no-wrap msgid "" ".if exists(${WX_CONFIG})\n" "VER_STR!=\t${WX_CONFIG} --release\n" msgstr "" ".if exists(${WX_CONFIG})\n" "VER_STR!=\t${WX_CONFIG} --release\n" #. type: delimited block . 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:4039 #, no-wrap msgid "" "PLIST_SUB+=\tVERSION=\"${VER_STR}\"\n" ".endif\n" msgstr "" "PLIST_SUB+=\tVERSION=\"${VER_STR}\"\n" ".endif\n" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:4046 msgid "" "The wxWidgets variables can be safely used in commands when they are inside " "targets without the need of `WX_PREMK`." msgstr "" "Переменные wxWidgets можно безопасно использовать в командах внутри целей " "без необходимости в `WX_PREMK`." #. type: Title === #: documentation/content/en/books/porters-handbook/special/_index.adoc:4049 #, no-wrap msgid "Additional `configure` Arguments" msgstr "Дополнительные параметры `configure`" #. type: delimited block = 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:4052 msgid "" "Some GNU `configure` scripts cannot find wxWidgets with just the `WX_CONFIG` " "environment variable set, requiring additional arguments. `WX_CONF_ARGS` can " "be used for provide them." msgstr "" "Некоторые скрипты GNU `configure` не могут найти wxWidgets, если задана " "только переменная окружения `WX_CONFIG`, и требуют дополнительные параметры. " "`WX_CONF_ARGS` можно использовать для их указания." #. type: Block title #: documentation/content/en/books/porters-handbook/special/_index.adoc:4054 #, no-wrap msgid "Legal Values for `WX_CONF_ARGS`" msgstr "Допустимые значения для `WX_CONF_ARGS`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:4058 #, no-wrap msgid "Possible value" msgstr "Возможное значение" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:4060 #, no-wrap msgid "Resulting argument" msgstr "Получаемый параметр" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:4061 #, no-wrap msgid "`absolute`" msgstr "`absolute`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:4063 #, no-wrap msgid "`--with-wx-config=${WX_CONFIG}`" msgstr "`--with-wx-config=${WX_CONFIG}`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:4064 #, no-wrap msgid "`relative`" msgstr "`relative`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:4065 #, no-wrap msgid "`--with-wx=${LOCALBASE} --with-wx-config=${WX_CONFIG:T}`" msgstr "`--with-wx=${LOCALBASE} --with-wx-config=${WX_CONFIG:T}`" #. type: Title == #: documentation/content/en/books/porters-handbook/special/_index.adoc:4068 #, no-wrap msgid "Using Lua" msgstr "Использование Lua" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:4071 msgid "" "This section describes the status of the Lua libraries in the ports tree and " "its integration with the ports system." msgstr "" "Этот раздел описывает состояние библиотек Lua в дереве портов и их " "интеграцию с системой портов." #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:4077 msgid "" "There are many versions of the Lua libraries and corresponding interpreters, " "which conflict between them (install files under the same name). In the " "ports tree this problem has been solved by installing each version under a " "different name using version number suffixes." msgstr "" "Существует множество версий библиотек Lua и соответствующих интерпретаторов, " "которые конфликтуют между собой (устанавливают файлы с одинаковыми именами). " "В дереве портов эта проблема решена установкой каждой версии под разными " "именами с использованием суффиксов номеров версий." #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:4080 msgid "" "The obvious disadvantage of this is that each application has to be modified " "to find the expected version. But it can be solved by adding some " "additional flags to the compiler and linker." msgstr "" "Очевидный недостаток этого заключается в том, что каждое приложение " "необходимо модифицировать для поиска ожидаемой версии. Однако это можно " "решить, добавив дополнительные флаги компилятору и компоновщику." #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:4083 msgid "" "Applications that use Lua should normally build for just one version. " "However, loadable modules for Lua are built in a separate flavor for each " "Lua version that they support, and dependencies on such modules should " "specify the flavor using the `@${LUA_FLAVOR}` suffix on the port origin." msgstr "" "Приложения, использующие Lua, обычно должны собираться только для одной " "версии. Однако загружаемые модули для Lua собираются в отдельных флейворах " "для каждой поддерживаемой версии Lua, и зависимости от таких модулей должны " "указывать флейвор с использованием суффикса `@${LUA_FLAVOR}` в расположении " "(origin) порта." #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:4088 msgid "A port using Lua should have a line of this form:" msgstr "Порт, использующий Lua, должен содержать строку следующего вида:" #. type: delimited block . 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:4092 #, no-wrap msgid "USES=\tlua\n" msgstr "USES=\tlua\n" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:4097 msgid "" "If a specific version of Lua, or range of versions, is needed, it can be " "specified as a parameter in the form `XY` (which may be used multiple " "times), `XY+`, `-XY`, or `XY-ZA`. The default version of Lua as set via " "`DEFAULT_VERSIONS` will be used if it falls in the requested range, " "otherwise the closest requested version to the default will be used. For " "example:" msgstr "" "Если требуется определённая версия Lua или диапазон версий, его можно " "указать в виде параметра `XY` (который можно использовать несколько раз), `XY" "+`, `-XY` или `XY-ZA`. Версия Lua, установленная через `DEFAULT_VERSIONS`, " "будет использована, если она попадает в запрошенный диапазон, в противном " "случае будет использована ближайшая к умолчанию запрошенная версия. Например:" #. type: delimited block . 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:4101 #, no-wrap msgid "USES=\tlua:52-53\n" msgstr "USES=\tlua:52-53\n" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:4104 msgid "" "Note that no attempt is made to adjust the version selection based on the " "presence of any already-installed Lua version." msgstr "" "Обратите внимание, что не предпринимается попытка изменить выбор версии на " "основе наличия любой уже установленной версии Lua." #. type: delimited block = 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:4109 msgid "" "The `XY+` form of version specification should not be used without careful " "consideration; the Lua API changes to some extent in every version, and " "configuration tools like CMake or Autoconf will often fail to work on future " "versions of Lua until updated to do so." msgstr "" "Форма указания версии `XY+` не должна использоваться без тщательного " "обдумывания; Lua API в некоторой степени меняется с каждой версией, и " "инструменты конфигурации, такие как CMake или Autoconf, скорее всего не " "будут работать с будущими версиями Lua, пока не будут обновлены для этого." #. type: Title === #: documentation/content/en/books/porters-handbook/special/_index.adoc:4112 #, no-wrap msgid "Configuration and Compiler flags" msgstr "Конфигурация и флаги компилятора" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:4117 msgid "" "Software that uses Lua may have been written to auto-detect the Lua version " "in use. In general ports should override this assumption, and force the use " "of the specific Lua version selected as described above. Depending on the " "software being ported, this might require any or all of:" msgstr "" "Программное обеспечение, использующее Lua, может быть написано с " "автоматическим определением версии Lua в использовании. В общем случае порты " "должны переопределять это предположение и принудительно использовать " "конкретную выбранную версию Lua, как описано выше. В зависимости от " "портируемого программного обеспечения, это может потребовать любого или всех " "из следующих действий:" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:4119 msgid "" "Using `LUA_VER` as part of a parameter to the software's configuration " "script via `CONFIGURE_ARGS` or `CONFIGURE_ENV` (or equivalent for other " "build systems);" msgstr "" "Использование `LUA_VER` в качестве части параметра для скрипта конфигурации " "программного обеспечения через `CONFIGURE_ARGS` или `CONFIGURE_ENV` (или " "эквивалентные для других систем сборки);" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:4120 msgid "" "Adding `-I${LUA_INCDIR}`, `-L${LUA_LIBDIR}`, and `-llua-${LUA_VER}` to " "`CFLAGS`, `LDFLAGS`, `LIBS` respectively as appropriate;" msgstr "" "Добавление `-I${LUA_INCDIR}`, `-L${LUA_LIBDIR}` и `-llua-${LUA_VER}` в " "`CFLAGS`, `LDFLAGS` и `LIBS` соответственно, где это необходимо;" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:4121 msgid "" "Patch the software's configuration or build files to select the correct " "version." msgstr "" "Исправьте конфигурационные или файлы сборки программного обеспечения, чтобы " "выбрать правильную версию." #. type: Title === #: documentation/content/en/books/porters-handbook/special/_index.adoc:4124 #: documentation/content/en/books/porters-handbook/special/_index.adoc:4368 #, no-wrap msgid "Version Flavors" msgstr "Флейворы версии" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:4128 msgid "" "A port which installs a Lua module (rather than an application that simply " "makes use of Lua) should build a separate flavor for each supported Lua " "version. This is done by adding the `module` parameter:" msgstr "" "Порт, который устанавливает модуль Lua (а не приложение, просто использующее " "Lua), должен собирать отдельный флейвор для каждой поддерживаемой версии " "Lua. Это делается путем добавления параметра `module`:" #. type: delimited block . 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:4132 #, no-wrap msgid "USES=\tlua:module\n" msgstr "USES=\tlua:module\n" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:4135 msgid "" "A version number or range of versions can be specified as well; use a comma " "to separate parameters." msgstr "" "Так же может быть указан номер версии или диапазон версий. Используйте " "запятую для разделения параметров." #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:4137 msgid "" "Since each flavor must have a different package name, the variable " "`LUA_PKGNAMEPREFIX` is provided which will be set to an appropriate value; " "the intended usage is:" msgstr "" "Поскольку каждый флейвор должен иметь уникальное имя пакета, предоставляется " "переменная `LUA_PKGNAMEPREFIX`, которая будет установлена в соответствующее " "значение; предполагаемое использование:" #. type: delimited block . 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:4141 #, no-wrap msgid "PKGNAMEPREFIX=\t${LUA_PKGNAMEPREFIX}\n" msgstr "PKGNAMEPREFIX=\t${LUA_PKGNAMEPREFIX}\n" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:4145 msgid "" "Module ports should normally install files only to `LUA_MODLIBDIR`, " "`LUA_MODSHAREDIR`, `LUA_DOCSDIR`, and `LUA_EXAMPLESDIR`, all of which are " "set up to refer to version-specific subdirectories. Installing any other " "files must be done with care to avoid conflicts between versions." msgstr "" "Модульные порты обычно должны устанавливать файлы только в `LUA_MODLIBDIR`, " "`LUA_MODSHAREDIR`, `LUA_DOCSDIR` и `LUA_EXAMPLESDIR`, все из которых " "настроены на ссылки в версионно-зависимые подкаталоги. Установка любых " "других файлов должна выполняться с осторожностью, чтобы избежать конфликтов " "между версиями." #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:4147 msgid "" "A port (other than a Lua module) which wishes to build a separate package " "for each Lua version should use the `flavors` parameter:" msgstr "" "Порт (кроме модуля Lua), который хочет собрать отдельный пакет для каждой " "версии Lua, должен использовать параметр `flavors`:" #. type: delimited block . 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:4151 #, no-wrap msgid "USES=\tlua:flavors\n" msgstr "USES=\tlua:flavors\n" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:4155 msgid "" "This operates the same way as the `module` parameter described above, but " "without the assumption that the package should be documented as a Lua module " "(so `LUA_DOCSDIR` and `LUA_EXAMPLESDIR` are not defined by default). " "However, the port may choose to define `LUA_DOCSUBDIR` as a suitable " "subdirectory name (usually the port's `PORTNAME` as long as this does not " "conflict with the `PORTNAME` of any module), in which case the framework " "will define both `LUA_DOCSDIR` and `LUA_EXAMPLESDIR`." msgstr "" "Это работает так же, как параметр `module`, описанный выше, но без " "предположения, что пакет должен быть задокументирован как модуль Lua " "(поэтому `LUA_DOCSDIR` и `LUA_EXAMPLESDIR` по умолчанию не определены). " "Однако порт может определить `LUA_DOCSUBDIR` как подходящее имя подкаталога " "(обычно `PORTNAME` порта, если это не конфликтует с `PORTNAME` любого " "модуля), и в этом случае фреймворк определит как `LUA_DOCSDIR`, так и " "`LUA_EXAMPLESDIR`." #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:4158 msgid "" "As with module ports, a flavored port should avoid installing files that " "would conflict between versions. Typically this is done by adding " "`LUA_VER_STR` as a suffix to program names (e.g. using crossref:uses[uses-" "uniquefiles,`uniquefiles`]), and otherwise using either `LUA_VER` or " "`LUA_VER_STR` as part of any other files or subdirectories used outside of " "`LUA_MODLIBDIR` and `LUA_MODSHAREDIR`." msgstr "" "Как и в случае с модульными портами, порт с флейворами должен избегать " "установки файлов, которые могут конфликтовать между версиями. Обычно это " "достигается добавлением `LUA_VER_STR` в качестве суффикса к именам программ " "(например, с использованием crossref:uses[uses-uniquefiles,`uniquefiles`]), " "а также использованием `LUA_VER` или `LUA_VER_STR` в составе других файлов " "или подкаталогов, используемых вне `LUA_MODLIBDIR` и `LUA_MODSHAREDIR`." #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:4163 #: documentation/content/en/books/porters-handbook/special/_index.adoc:4398 msgid "These variables are available in the port." msgstr "В порте доступны эти переменные." #. type: Block title #: documentation/content/en/books/porters-handbook/special/_index.adoc:4165 #, no-wrap msgid "Variables Defined for Ports That Use Lua" msgstr "Переменные, определённые для портов, использующих Lua" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:4172 #, no-wrap msgid "`LUA_VER`" msgstr "`LUA_VER`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:4174 #, no-wrap msgid "The Lua version that is going to be used (for example, `5.4`)" msgstr "Версия Lua, которая будет использоваться (например, `5.4`)" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:4175 #, no-wrap msgid "`LUA_VER_STR`" msgstr "`LUA_VER_STR`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:4177 #, no-wrap msgid "The Lua version without the dots (for example, `54`)" msgstr "Версия Lua без точек (например, `54`)" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:4178 #, no-wrap msgid "`LUA_FLAVOR`" msgstr "`LUA_FLAVOR`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:4180 #, no-wrap msgid "The flavor name corresponding to the selected Lua version, to be used for specifying dependencies" msgstr "Имя флейвора, соответствующее выбранной версии Lua, используемое для указания зависимостей" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:4181 #, no-wrap msgid "`LUA_BASE`" msgstr "`LUA_BASE`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:4183 #, no-wrap msgid "The prefix that should be used to locate Lua (and components) that are already installed" msgstr "Префикс, который должен использоваться для поиска Lua (и компонентов), уже установленных" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:4184 #, no-wrap msgid "`LUA_PREFIX`" msgstr "`LUA_PREFIX`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:4186 #, no-wrap msgid "The prefix where Lua (and components) are to be installed by this port" msgstr "Префикс, куда этим портом будут установлены Lua (и компоненты)" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:4187 #, no-wrap msgid "`LUA_INCDIR`" msgstr "`LUA_INCDIR`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:4189 #, no-wrap msgid "The directory where Lua header files are installed" msgstr "Каталог, в котором установлены заголовочные файлы Lua" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:4190 #, no-wrap msgid "`LUA_LIBDIR`" msgstr "`LUA_LIBDIR`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:4192 #, no-wrap msgid "The directory where Lua libraries are installed" msgstr "Каталог, в котором установлены библиотеки Lua" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:4193 #, no-wrap msgid "`LUA_REFMODLIBDIR`" msgstr "`LUA_REFMODLIBDIR`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:4195 #, no-wrap msgid "The directory where Lua module libraries ([.filename]#.so#) that are already installed are to be found" msgstr "Каталог, в котором находятся уже установленные библиотеки модулей Lua ([.filename]#.so#)" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:4196 #, no-wrap msgid "`LUA_REFMODSHAREDIR`" msgstr "`LUA_REFMODSHAREDIR`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:4198 #, no-wrap msgid "The directory where Lua modules ([.filename]#.lua#) that are already installed are to be found" msgstr "Каталог, в котором находятся установленные модули Lua ([.filename]#.lua#)" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:4199 #, no-wrap msgid "`LUA_MODLIBDIR`" msgstr "`LUA_MODLIBDIR`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:4201 #, no-wrap msgid "The directory where Lua module libraries ([.filename]#.so#) are to be installed by this port" msgstr "Каталог, в котором библиотеки модулей Lua ([.filename]#.so#) должны быть установлены данным портом" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:4202 #, no-wrap msgid "`LUA_MODSHAREDIR`" msgstr "`LUA_MODSHAREDIR`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:4204 #, no-wrap msgid "The directory where Lua modules ([.filename]#.lua#) are to be installed by this port" msgstr "Каталог, в котором должны быть установлены модули Lua ([.filename]#.lua#) данным портом" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:4205 #, no-wrap msgid "`LUA_PKGNAMEPREFIX`" msgstr "`LUA_PKGNAMEPREFIX`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:4207 #, no-wrap msgid "The package name prefix used by Lua modules" msgstr "Префикс имени пакета, используемый модулями Lua" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:4208 #, no-wrap msgid "`LUA_CMD`" msgstr "`LUA_CMD`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:4210 #, no-wrap msgid "The name of the Lua interpreter (e.g. `lua54`)" msgstr "Название интерпретатора Lua (например, `lua54`)" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:4211 #, no-wrap msgid "`LUAC_CMD`" msgstr "`LUAC_CMD`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:4212 #, no-wrap msgid "The name of the Lua compiler (e.g. `luac54`)" msgstr "Название компилятора Lua (например, `luac54`)" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:4215 msgid "" "These additional variables are available for ports that specified the " "`module` parameter:" msgstr "" "Эти дополнительные переменные доступны для портов, которые указали параметр " "`module`:" #. type: Block title #: documentation/content/en/books/porters-handbook/special/_index.adoc:4217 #, no-wrap msgid "Variables Defined for Lua Module Ports" msgstr "Переменные, определённые для модулей Lua в портах" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:4224 #, no-wrap msgid "`LUA_DOCSDIR`" msgstr "`LUA_DOCSDIR`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:4226 #, no-wrap msgid "the directory to which the module's documentation should be installed." msgstr "каталог, в который должна быть установлена документация модуля." #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:4227 #, no-wrap msgid "`LUA_EXAMPLESDIR`" msgstr "`LUA_EXAMPLESDIR`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:4228 #, no-wrap msgid "the directory to which the module's example files should be installed." msgstr "каталог, в который должны быть установлены примеры файлов модуля." #. type: Block title #: documentation/content/en/books/porters-handbook/special/_index.adoc:4234 #, no-wrap msgid "Makefile for an application using Lua" msgstr "`Makefile` для приложения, использующего Lua" #. type: delimited block = 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:4239 msgid "" "This example shows how to reference a Lua module required at run time. " "Notice that the reference must specify a flavor." msgstr "" "Этот пример показывает, как сослаться на модуль Lua, требуемый во время " "выполнения. Обратите внимание, что ссылка должна указывать флейвор." #. type: delimited block . 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:4245 #: documentation/content/en/books/porters-handbook/special/_index.adoc:4506 #, no-wrap msgid "" "PORTNAME=\tsample\n" "DISTVERSION=\t1.2.3\n" "CATEGORIES=\twhatever\n" msgstr "" "PORTNAME=\tsample\n" "DISTVERSION=\t1.2.3\n" "CATEGORIES=\twhatever\n" #. type: delimited block . 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:4249 #: documentation/content/en/books/porters-handbook/special/_index.adoc:4273 #, no-wrap msgid "" "MAINTAINER=\tfred.bloggs@example.com\n" "COMMENT=\tSample\n" "WWW=\t\thttps://example.com/lua_sample/sample/\n" msgstr "" "MAINTAINER=\tfred.bloggs@example.com\n" "COMMENT=\tSample\n" "WWW=\t\thttps://example.com/lua_sample/sample/\n" #. type: delimited block . 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:4251 #, no-wrap msgid "RUN_DEPENDS=\t${LUA_REFMODLIBDIR}/lpeg.so:devel/lua-lpeg@${LUA_FLAVOR}\n" msgstr "RUN_DEPENDS=\t${LUA_REFMODLIBDIR}/lpeg.so:devel/lua-lpeg@${LUA_FLAVOR}\n" #. type: delimited block . 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:4253 #, no-wrap msgid "USES=\t\tlua\n" msgstr "USES=\t\tlua\n" #. type: Block title #: documentation/content/en/books/porters-handbook/special/_index.adoc:4260 #, no-wrap msgid "Makefile for a simple Lua module" msgstr "`Makefile` для простого модуля Lua" #. type: delimited block . 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:4269 #, no-wrap msgid "" "PORTNAME=\tsample\n" "DISTVERSION=\t1.2.3\n" "CATEGORIES=\twhatever\n" "PKGNAMEPREFIX=\t${LUA_PKGNAMEPREFIX}\n" msgstr "" "PORTNAME=\tsample\n" "DISTVERSION=\t1.2.3\n" "CATEGORIES=\twhatever\n" "PKGNAMEPREFIX=\t${LUA_PKGNAMEPREFIX}\n" #. type: delimited block . 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:4275 #, no-wrap msgid "USES=\t\tlua:module\n" msgstr "USES=\t\tlua:module\n" #. type: delimited block . 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:4277 #, no-wrap msgid "DOCSDIR=\t${LUA_DOCSDIR}\n" msgstr "DOCSDIR=\t${LUA_DOCSDIR}\n" #. type: Title == #: documentation/content/en/books/porters-handbook/special/_index.adoc:4284 #, no-wrap msgid "Using Guile" msgstr "Использование Guile" #. type: delimited block = 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:4287 msgid "" "This section describes the status of Guile in the ports tree and its " "integration with the ports system." msgstr "" "Этот раздел описывает состояние Guile в дереве портов и его интеграцию с " "системой портов." #. type: delimited block = 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:4296 msgid "" "There are multiple versions of the Guile libraries and corresponding " "interpreters, which conflict between them (install files under the same " "name). In the ports tree this problem has been solved by installing each " "version under a different name using version number suffixes. In most " "cases, applications should detect the correct version from the configuration " "variables provided and use `pkg-config` to determine the name and associated " "paths. However, some applications (especially those using their own " "configuration rules for `cmake` or `meson`) will always try to use the " "latest available version. In this case, either patch the port or declare a " "build conflict (see the `conflicts` option below) to ensure that the correct " "dependency is generated when building outside of poudriere." msgstr "" "Существует несколько версий библиотек Guile и соответствующих " "интерпретаторов, которые конфликтуют между собой (устанавливают файлы с " "одинаковыми именами). В дереве портов эта проблема решена путем установки " "каждой версии под разными именами с использованием суффиксов номеров версий. " "В большинстве случаев приложения должны определять правильную версию из " "предоставленных конфигурационных переменных и использовать `pkg-config` для " "определения имени и связанных путей. Однако некоторые приложения (особенно " "те, которые используют собственные правила конфигурации для `cmake` или " "`meson`) всегда будут пытаться использовать последнюю доступную версию. В " "этом случае либо исправьте порт, либо объявите конфликт сборки (см. опцию " "`conflicts` ниже), чтобы гарантировать создание правильной зависимости при " "сборке вне poudriere." #. type: delimited block = 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:4302 msgid "" "Applications that use Guile should normally build for just one version, " "preferably the one specified in `DEFAULT_VERSIONS`, or failing that the " "latest version that they support. However, Guile or Scheme libraries, or " "extension modules for Guile are built in a separate flavor for each Guile " "version that they support, and dependencies on such ports should specify the " "flavor using the `@${GUILE_FLAVOR}` suffix on the port origin." msgstr "" "Приложения, использующие Guile, обычно должны собираться только для одной " "версии, предпочтительно указанной в `DEFAULT_VERSIONS`, или, если это " "невозможно, для последней поддерживаемой версии. Однако библиотеки Guile или " "Scheme, а также модули расширения для Guile собираются в отдельных флейворах " "для каждой поддерживаемой версии Guile. Зависимости от таких портов должны " "указывать флейвор с использованием суффикса `@${GUILE_FLAVOR}` в " "расположении (origin) порта." #. type: delimited block = 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:4307 msgid "" "A port using Guile should define `USES=guile:__arg,arg...__` with " "appropriate arguments as follows:" msgstr "" "Порт, использующий Guile, должен определять `USES=guile:__arg,arg...__` с " "соответствующими параметрами следующим образом:" #. type: Block title #: documentation/content/en/books/porters-handbook/special/_index.adoc:4309 #, no-wrap msgid "Arguments Defined for Ports That Use Guile" msgstr "Параметры, определённые для портов, использующих Guile" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:4316 #, no-wrap msgid "_X.Y_" msgstr "_X.Y_" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:4320 #, no-wrap msgid "" "Declare compatibility with Guile version `X.Y`.\n" "Currently available versions are `1.8` (obsolete), `2.2` and `3.0`.\n" "Multiple versions may be specified." msgstr "" "Объявить совместимость с версией Guile `X.Y`.\n" "Доступные версии: `1.8` (устарела), `2.2` и `3.0`.\n" "Можно указать несколько версий." #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:4321 #, no-wrap msgid "flavors" msgstr "flavors" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:4325 #, no-wrap msgid "" "Create a flavor for every Guile version specified.\n" "The version specified by `DEFAULT_VERSIONS` will become the default flavor.\n" "Flavor names are of the form `guileXY`." msgstr "" "Создать флейвор для каждой указанной версии Guile.\n" "Версия, указанная в `DEFAULT_VERSIONS`, станет флейвором по умолчанию.\n" "Названия флейворов имеют вид `guileXY`." #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:4326 #, no-wrap msgid "build" msgstr "build" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:4329 #, no-wrap msgid "" "Add the Guile interpreter as a build dependency only, rather than a library dependency.\n" "`build` and `run` may both be specified." msgstr "" "Добавить интерпретатор Guile только как зависимость для сборки, а не как зависимость библиотеки.\n" "`build` и `run` могут быть указаны оба." #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:4330 #, no-wrap msgid "run" msgstr "run" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:4333 #, no-wrap msgid "" "Add the Guile interpreter as a runtime dependency only, rather than a library dependency.\n" "`build` and `run` may both be specified." msgstr "" "Добавить интерпретатор Guile только как зависимость во время выполнения, а не как зависимость от библиотеки.\n" "`build` и `run` могут быть указаны оба." #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:4334 #, no-wrap msgid "alias" msgstr "alias" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:4336 #, no-wrap msgid "Add `BINARY_ALIAS` values for the interpreter and tools." msgstr "Добавить значения `BINARY_ALIAS` для интерпретатора и инструментов." #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:4337 #, no-wrap msgid "conflicts" msgstr "conflicts" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:4339 #, no-wrap msgid "" "Declare `CONFLICTS_BUILD` for Guile versions newer than the one selected.\n" "Use this when the port cannot be configured to use a specific Guile version." msgstr "" "Объявить `CONFLICTS_BUILD` для версий Guile новее выбранной. \n" "Используйте это, когда порт нельзя настроить на использование определённой версии Guile." #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:4342 msgid "" "Some additional arguments are available for handling unusual cases; see `Mk/" "Uses/guile.mk` for details." msgstr "" "Некоторые дополнительные аргументы доступны для обработки нестандартных " "случаев; подробности см. в `Mk/Uses/guile.mk`." #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:4345 msgid "" "Unless `build` or `run` is specified, then `LIB_DEPENDS` receives both the " "`libguile` library dependency and also any additional dependencies required " "by the guile version, e.g. `libgc`. Normally the port should not need any " "additional dependencies related to its use of Guile." msgstr "" "Если не указано `build` или `run`, то `LIB_DEPENDS` получает зависимость от " "библиотеки `libguile`, а также любые дополнительные зависимости, требуемые " "версией guile, например, `libgc`. Обычно порту не требуются дополнительные " "зависимости, связанные с использованием Guile." #. type: Title === #: documentation/content/en/books/porters-handbook/special/_index.adoc:4347 #, no-wrap msgid "Configuration flags" msgstr "Флаги конфигурации" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:4352 msgid "" "Software that uses Guile should be using the `pkg-config` mechanism to " "obtain compiler and linker flags. Some older or esoteric ports may be using " "`guile-config` or obtaining values directly from `guile` instead, which " "should also work (the `alias` argument may be useful in some of these cases)." msgstr "" "Программное обеспечение, использующее Guile, должно использовать механизм " "`pkg-config` для получения флагов компилятора и компоновщика. Некоторые " "старые или экзотические порты могут использовать `guile-config` или получать " "значения напрямую из `guile`, что также должно работать (в некоторых из этих " "случаев может быть полезен аргумент `alias`)." #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:4354 msgid "" "The framework tries to inform the port of the desired Guile version using " "the following methods:" msgstr "" "Фреймворк пытается сообщить порту желаемую версию Guile, используя следующие " "методы:" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:4356 msgid "`GUILE_EFFECTIVE_VERSION` is added to `CONFIGURE_ENV`;" msgstr "`GUILE_EFFECTIVE_VERSION` добавлен в `CONFIGURE_ENV`;" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:4357 msgid "" "The full path to the Guile binary is specified in the `GUILE` variable in " "`CONFIGURE_ENV` and `MAKE_ENV`;" msgstr "" "Полный путь к исполняемому файлу Guile указан в переменной `GUILE` в " "`CONFIGURE_ENV` и `MAKE_ENV`;" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:4358 msgid "" "If the `alias` option is used, the desired Guile version's binaries are the " "ones aliased;" msgstr "" "Если используется опция `alias`, то желаемые версии бинарных файлов Guile " "являются теми, которые имеют алиасы;" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:4359 msgid "" "If the `alias` option is not used, paths to the desired Guile version's " "tools (`guild`, `guile-config`, etc.) are added to `CONFIGURE_ENV` and " "`MAKE_ENV` as variables `GUILD`, `GUILE_CONFIG`, etc." msgstr "" "Если параметр `alias` не используется, пути к инструментам нужной версии " "Guile (`guild`, `guile-config` и т.д.) добавляются в `CONFIGURE_ENV` и " "`MAKE_ENV` в виде переменных `GUILD`, `GUILE_CONFIG` и т.д." #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:4362 msgid "" "For some ports, it may be necessary to specify the version in additional " "ways, such as via `CONFIGURE_ARGS` or `MESON_ARGS`, depending on the port." msgstr "" "Для некоторых портов может потребоваться указать версию дополнительными " "способами, например, через `CONFIGURE_ARGS` или `MESON_ARGS`, в зависимости " "от порта." #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:4366 msgid "" "If none of these methods cause the port to select the specified Guile " "version when other versions are present, then preferably patch it to do so. " "If that is not feasible, specify the `conflicts` option to prevent building " "the port under conditions where it will detect the wrong version." msgstr "" "Если ни один из этих методов не приводит к тому, что порт выбирает указанную " "версию Guile при наличии других версий, то предпочтительно исправить его, " "чтобы это происходило. Если это невозможно, укажите опцию `conflicts`, чтобы " "предотвратить сборку порта в условиях, когда он обнаруживает неправильную " "версию." #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:4373 msgid "" "A port which installs a Guile extension or library, or a Scheme library that " "precompiles for Guile, should build a separate flavor for each supported " "Guile version. This is done by adding the `flavors` option." msgstr "" "Порт, который устанавливает расширение или библиотеку Guile, или библиотеку " "Scheme, которая предварительно компилируется для Guile, должен собирать " "отдельный флейвор для каждой поддерживаемой версии Guile. Это делается путем " "добавления опции `flavors`." #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:4375 msgid "" "Since each flavor must have a different package name, such ports must set " "`PKGNAMESUFFIX`, typically:" msgstr "" "Поскольку каждый флейвор должен иметь уникальное имя пакета, такие порты " "обычно устанавливают `PKGNAMESUFFIX`, например:" #. type: delimited block . 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:4379 #, no-wrap msgid "PKGNAMESUFFIX=\t-${FLAVOR}\n" msgstr "PKGNAMESUFFIX=\t-${FLAVOR}\n" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:4383 msgid "" "Such ports must install Scheme files to `GUILE_SITE_DIR` rather than to " "`GUILE_GLOBAL_SITE_DIR` even when the files are not version-specific. This " "often requires patching the port." msgstr "" "Такие порты должны устанавливать файлы Scheme в `GUILE_SITE_DIR`, а не в " "`GUILE_GLOBAL_SITE_DIR`, даже если файлы не зависят от версии. Это часто " "требует исправления порта." #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:4386 msgid "" "Additionally, if such a port installs a `.pc` file, it must be placed in " "`GUILE_PKGCONFIG_PATH` rather than in the global `pkgconfig` directory. " "This allows dependent ports to find a correct configuration for the specific " "Guile version in use." msgstr "" "Кроме того, если такой порт устанавливает файл `.pc`, он должен быть " "размещён в `GUILE_PKGCONFIG_PATH`, а не в глобальном каталоге `pkgconfig`. " "Это позволяет зависимым портам находить правильную конфигурацию для " "используемой версии Guile." #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:4389 msgid "" "If a Guile extension port installs a `.so` file, then it must usually be " "placed in the Guile-version-specific `extensions` directory. `USE_LDCONFIG` " "should usually not be used." msgstr "" "Если порт расширения Guile устанавливает файл `.so`, то обычно он должен " "быть размещён в специфичном для версии Guile каталоге `extensions`. Обычно " "не следует использовать `USE_LDCONFIG`." #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:4393 msgid "" "Any other files installed by a flavored port must likewise be in version-" "specific directories or use version-specific filenames. For documentation " "and examples, `GUILE_DOCS_DIR` and `GUILE_EXAMPLES_DIR` specify suitable " "locations in which the port should create a subdirectory, see below." msgstr "" "Любые другие файлы, устанавливаемые портом с флейвором, также должны " "находиться в версионных каталогах или использовать версионные имена файлов. " "Для документации и примеров переменные `GUILE_DOCS_DIR` и " "`GUILE_EXAMPLES_DIR` указывают подходящие расположения, в которых порт " "должен создать подкаталог (см. ниже)." #. type: Block title #: documentation/content/en/books/porters-handbook/special/_index.adoc:4400 #, no-wrap msgid "Variables Defined for Ports That Use Guile" msgstr "Переменные, определённые для портов, использующих Guile" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:4405 #: documentation/content/en/books/porters-handbook/special/_index.adoc:4467 #, no-wrap msgid "Sample Value" msgstr "Пример значения" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:4408 #, no-wrap msgid "`GUILE_VER`" msgstr "`GUILE_VER`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:4409 #, no-wrap msgid "3.0" msgstr "3.0" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:4411 #, no-wrap msgid "Guile version in use." msgstr "Используемая версия Guile." #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:4412 #, no-wrap msgid "`GUILE_SFX`" msgstr "`GUILE_SFX`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:4413 #, no-wrap msgid "3" msgstr "3" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:4416 #, no-wrap msgid "" "Short suffix used on some names.\n" "Use only with care; may be non-unique or may change in the future." msgstr "" "Короткий суффикс, используемый в некоторых именах.\n" "Используйте с осторожностью; может быть неуникальным или измениться в будущем." #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:4417 #, no-wrap msgid "`GUILE_FLAVOR`" msgstr "`GUILE_FLAVOR`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:4418 #, no-wrap msgid "guile30" msgstr "guile30" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:4420 #, no-wrap msgid "Flavor name corresponding to the selected version." msgstr "Название флейвора, соответствующее выбранной версии." #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:4421 #, no-wrap msgid "`GUILE_PORT`" msgstr "`GUILE_PORT`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:4422 #, no-wrap msgid "lang/guile3" msgstr "lang/guile3" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:4424 #, no-wrap msgid "Port origin of the specified Guile version." msgstr "Расположение порта (origin) для указанной версии Guile." #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:4425 #, no-wrap msgid "`GUILE_PREFIX`" msgstr "`GUILE_PREFIX`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:4426 #, no-wrap msgid "${PREFIX}" msgstr "${PREFIX}" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:4428 #, no-wrap msgid "Directory prefix to be used for installation." msgstr "Префикс каталога для использования при установке." #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:4429 #, no-wrap msgid "`GUILE_CMD`" msgstr "`GUILE_CMD`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:4430 #, no-wrap msgid "guile-3.0" msgstr "guile-3.0" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:4432 #, no-wrap msgid "Name of the Guile interpreter, with version suffix." msgstr "Имя интерпретатора Guile с суффиксом версии." #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:4433 #, no-wrap msgid "`GUILE_CMDPATH`" msgstr "`GUILE_CMDPATH`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:4434 #, no-wrap msgid "${LOCALBASE}/bin/guile-3.0" msgstr "${LOCALBASE}/bin/guile-3.0" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:4436 #, no-wrap msgid "Full path to the Guile interpreter." msgstr "Полный путь к интерпретатору Guile." #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:4437 #, no-wrap msgid "`GUILD_CMD`" msgstr "`GUILD_CMD`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:4438 #, no-wrap msgid "guild-3.0" msgstr "guild-3.0" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:4440 #, no-wrap msgid "Name of the Guild tool, with version suffix." msgstr "Название инструмента Guild, с суффиксом версии." #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:4441 #, no-wrap msgid "`GUILD_CMDPATH`" msgstr "`GUILD_CMDPATH`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:4442 #, no-wrap msgid "${LOCALBASE}/bin/guild-3.0" msgstr "`${LOCALBASE}/bin/guild-3.0`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:4444 #, no-wrap msgid "Full path to the Guild tool." msgstr "Полный путь к инструменту Guild." #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:4446 #, no-wrap msgid "" "`++GUILE_*_CMD++` +\n" "`++GUILE_*_CMDPATH++`" msgstr "" "`++GUILE_*_CMD++` +\n" "`++GUILE_*_CMDPATH++`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:4449 #, no-wrap msgid "Like `GUILE_CMD` and `GUILE_CMDPATH`, but for other tool binaries." msgstr "Как `GUILE_CMD` и `GUILE_CMDPATH`, но для других исполняемых файлов утилит." #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:4450 #, no-wrap msgid "`GUILE_PKGCONFIG_PATH`" msgstr "`GUILE_PKGCONFIG_PATH`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:4451 #, no-wrap msgid "${LOCALBASE}/libdata/pkgconfig/guile/3.0" msgstr "${LOCALBASE}/libdata/pkgconfig/guile/3.0" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:4453 #, no-wrap msgid "Where packages using `flavors` should install `.pc` files." msgstr "Где пакеты, использующие `flavors`, должны устанавливать файлы `.pc`." #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:4454 #, no-wrap msgid "`GUILE_INFO_PATH`" msgstr "`GUILE_INFO_PATH`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:4455 #, no-wrap msgid "share/info/guile3" msgstr "share/info/guile3" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:4456 #, no-wrap msgid "A suitable value for `INFO_PATH` for ports using the `flavors` option." msgstr "Подходящее значение для `INFO_PATH` для портов, использующих опцию `flavors`." #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:4460 msgid "" "The following are defined as variables and as `PLIST_SUB` entries. The " "variable form is suffixed with `_DIR` and is a full path (prefixed with " "`GUILE_PREFIX`)." msgstr "" "Следующие элементы определены как переменные и как записи `PLIST_SUB`. Форма " "переменной имеет суффикс `_DIR` и представляет собой полный путь (с " "префиксом `GUILE_PREFIX`)." #. type: Block title #: documentation/content/en/books/porters-handbook/special/_index.adoc:4462 #, no-wrap msgid "Path Substitutions Defined for Ports That Use Guile" msgstr "Подстановки путей, определённые для портов, использующих Guile" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:4470 #, no-wrap msgid "GUILE_GLOBAL_SITE" msgstr "GUILE_GLOBAL_SITE" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:4471 #, no-wrap msgid "share/guile/site" msgstr "share/guile/site" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:4473 #, no-wrap msgid "Site directory shared by all guile versions; this should not usually be used." msgstr "Каталог сайта, общий для всех версий guile; обычно не должен использоваться." #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:4474 #, no-wrap msgid "GUILE_SITE" msgstr "GUILE_SITE" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:4475 #, no-wrap msgid "share/guile/3.0/site" msgstr "share/guile/3.0/site" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:4477 #, no-wrap msgid "Site directory for the selected Guile version." msgstr "Каталог сайта для выбранной версии Guile." #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:4478 #, no-wrap msgid "GUILE_SITE_CCACHE" msgstr "GUILE_SITE_CCACHE" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:4479 #, no-wrap msgid "lib/guile/3.0/site-ccache" msgstr "lib/guile/3.0/site-ccache" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:4481 #, no-wrap msgid "Directory for compiled bytecode files." msgstr "Каталог для скомпилированных файлов байт-кода." #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:4482 #, no-wrap msgid "GUILE_DOCS" msgstr "GUILE_DOCS" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:4483 #, no-wrap msgid "share/doc/guile30" msgstr "share/doc/guile30" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:4485 #, no-wrap msgid "Parent directory for version-specific documentation." msgstr "Родительский каталог для документации, специфичной для версий." #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:4486 #, no-wrap msgid "GUILE_EXAMPLES" msgstr "GUILE_EXAMPLES" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:4487 #, no-wrap msgid "share/examples/guile30" msgstr "share/examples/guile30" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:4488 #, no-wrap msgid "Parent directory for version-specific examples." msgstr "Родительский каталог для примеров, специфичных для версий." #. type: Block title #: documentation/content/en/books/porters-handbook/special/_index.adoc:4494 #, no-wrap msgid "Makefile for an application using Guile" msgstr "`Makefile` для приложения, использующего Guile" #. type: delimited block = 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:4500 msgid "" "This example shows how to reference a Guile library required at build and " "run time. Notice that the reference must specify a flavor. This example " "assumes that the application is using `pkg-config` to locate dependencies." msgstr "" "Этот пример демонстрирует, как сослаться на библиотеку Guile, необходимую во " "время сборки и выполнения. Обратите внимание, что ссылка должна указывать " "флейвор. В этом примере предполагается, что приложение использует `pkg-" "config` для поиска зависимостей." #. type: delimited block . 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:4510 #, no-wrap msgid "" "MAINTAINER=\tfred.bloggs@example.com\n" "COMMENT=\tSample\n" "WWW=\t\thttps://example.com/guile_sample/sample/\n" msgstr "" "MAINTAINER=\tfred.bloggs@example.com\n" "COMMENT=\tSample\n" "WWW=\t\thttps://example.com/guile_sample/sample/\n" #. type: delimited block . 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:4513 #, no-wrap msgid "" "BUILD_DEPENDS=\tguile-lib-${GUILE_FLAVOR}>=0.2.5:devel/guile-lib@${GUILE_FLAVOR}\n" "RUN_DEPENDS=\tguile-lib-${GUILE_FLAVOR}>=0.2.5:devel/guile-lib@${GUILE_FLAVOR}\n" msgstr "" "BUILD_DEPENDS=\tguile-lib-${GUILE_FLAVOR}>=0.2.5:devel/guile-lib@${GUILE_FLAVOR}\n" "RUN_DEPENDS=\tguile-lib-${GUILE_FLAVOR}>=0.2.5:devel/guile-lib@${GUILE_FLAVOR}\n" #. type: delimited block . 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:4515 #, no-wrap msgid "USES=\t\tguile:2.2,3.0 pkgconfig\n" msgstr "USES=\t\tguile:2.2,3.0 pkgconfig\n" #. type: Title == #: documentation/content/en/books/porters-handbook/special/_index.adoc:4522 #, no-wrap msgid "Using `iconv`" msgstr "Использование `iconv`" #. type: delimited block = 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:4525 msgid "FreeBSD has a native `iconv` in the operating system." msgstr "" "В FreeBSD имеется встроенная реализация `iconv` в самой операционной системе." #. type: delimited block = 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:4527 msgid "For software that needs `iconv`, define `USES=iconv`." msgstr "" "Для программного обеспечения, требующего `iconv`, определите `USES=iconv`." #. type: delimited block = 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:4529 msgid "When a port defines `USES=iconv`, these variables will be available:" msgstr "" "Когда порт определяет `USES=iconv`, становятся доступны следующие переменные:" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:4534 #, no-wrap msgid "Variable name" msgstr "Имя переменной" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:4535 #, no-wrap msgid "Purpose" msgstr "Назначение" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:4536 #, no-wrap msgid "Port iconv (when using WCHAR_T or //TRANSLIT extensions)" msgstr "Порт iconv (при использовании расширений WCHAR_T или //TRANSLIT)" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:4539 #, no-wrap msgid "Base iconv" msgstr "Базовый iconv" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:4540 #, no-wrap msgid "`ICONV_CMD`" msgstr "`ICONV_CMD`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:4541 #, no-wrap msgid "Directory where the `iconv` binary resides" msgstr "Каталог, в котором находится бинарный файл `iconv`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:4542 #, no-wrap msgid "`${LOCALBASE}/bin/iconv`" msgstr "`${LOCALBASE}/bin/iconv`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:4544 #, no-wrap msgid "[.filename]#/usr/bin/iconv#" msgstr "[.filename]#/usr/bin/iconv#" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:4545 #, no-wrap msgid "`ICONV_LIB`" msgstr "`ICONV_LIB`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:4546 #, no-wrap msgid "`ld` argument to link to [.filename]#libiconv# (if needed)" msgstr "аргумент `ld` для линковки с [.filename]#libiconv# (если требуется)" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:4547 #, no-wrap msgid "`-liconv`" msgstr "`-liconv`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:4549 #: documentation/content/en/books/porters-handbook/special/_index.adoc:4559 #: documentation/content/en/books/porters-handbook/special/_index.adoc:4563 #, no-wrap msgid "(empty)" msgstr "(пусто)" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:4550 #, no-wrap msgid "`ICONV_PREFIX`" msgstr "`ICONV_PREFIX`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:4551 #, no-wrap msgid "Directory where the `iconv` implementation resides (useful for configure scripts)" msgstr "Каталог, в котором находится реализация `iconv` (полезно для скриптов configure)" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:4552 #, no-wrap msgid "`${LOCALBASE}`" msgstr "`${LOCALBASE}`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:4554 #, no-wrap msgid "[.filename]#/usr#" msgstr "[.filename]#/usr#" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:4555 #, no-wrap msgid "`ICONV_CONFIGURE_ARG`" msgstr "`ICONV_CONFIGURE_ARG`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:4556 #: documentation/content/en/books/porters-handbook/special/_index.adoc:4561 #, no-wrap msgid "Preconstructed configure argument for configure scripts" msgstr "Предварительно сконструированный аргумент configure для скриптов configure" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:4557 #, no-wrap msgid "`--with-libiconv-prefix=${LOCALBASE}`" msgstr "`--with-libiconv-prefix=${LOCALBASE}`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:4560 #, no-wrap msgid "`ICONV_CONFIGURE_BASE`" msgstr "`ICONV_CONFIGURE_BASE`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:4562 #, no-wrap msgid "`--with-libiconv=${LOCALBASE}`" msgstr "`--with-libiconv=${LOCALBASE}`" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:4566 msgid "" "These two examples automatically populate the variables with the correct " "value for systems using package:converters/libiconv[] or the native `iconv` " "respectively:" msgstr "" "Эти два примера автоматически заполняют переменные правильным значением для " "систем, использующих package:converters/libiconv[] или `iconv`, входящий в " "состав операционной системы, соответственно:" #. type: Block title #: documentation/content/en/books/porters-handbook/special/_index.adoc:4568 #, no-wrap msgid "Simple `iconv` Usage" msgstr "Простое использование `iconv`" #. type: delimited block . 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:4575 #, no-wrap msgid "" "USES=\t\ticonv\n" "LDFLAGS+=\t-L${LOCALBASE}/lib ${ICONV_LIB}\n" msgstr "" "USES=\t\ticonv\n" "LDFLAGS+=\t-L${LOCALBASE}/lib ${ICONV_LIB}\n" #. type: Block title #: documentation/content/en/books/porters-handbook/special/_index.adoc:4580 #, no-wrap msgid "`iconv` Usage with `configure`" msgstr "Использование `iconv` с `configure`" #. type: delimited block . 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:4587 #, no-wrap msgid "" "USES=\t\ticonv\n" "CONFIGURE_ARGS+=${ICONV_CONFIGURE_ARG}\n" msgstr "" "USES=\t\ticonv\n" "CONFIGURE_ARGS+=${ICONV_CONFIGURE_ARG}\n" #. type: delimited block = 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:4593 msgid "" "As shown above, `ICONV_LIB` is empty when a native `iconv` is present. This " "can be used to detect the native `iconv` and respond appropriately." msgstr "" "Как показано выше, `ICONV_LIB` пуста, когда присутствует встроенный `iconv`. " "Это можно использовать для обнаружения встроенного `iconv` и действовать " "соответственно." #. type: delimited block = 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:4596 msgid "" "Sometimes a program has an `ld` argument or search path hardcoded in a [." "filename]#Makefile# or configure script. This approach can be used to solve " "that problem:" msgstr "" "Иногда в программе аргумент `ld` или путь поиска жёстко заданы в [." "filename]#Makefile# или скрипте configure. Для решения этой проблемы можно " "использовать следующий подход:" #. type: Block title #: documentation/content/en/books/porters-handbook/special/_index.adoc:4598 #, no-wrap msgid "Fixing Hardcoded `-liconv`" msgstr "Исправление жёстко заданного `-liconv`" #. type: delimited block . 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:4604 #: documentation/content/en/books/porters-handbook/special/_index.adoc:4621 #, no-wrap msgid "USES=\t\ticonv\n" msgstr "USES=\t\ticonv\n" #. type: delimited block . 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:4607 #, no-wrap msgid "" "post-patch:\n" "\t@${REINPLACE_CMD} -e 's/-liconv/${ICONV_LIB}/' ${WRKSRC}/Makefile\n" msgstr "" "post-patch:\n" "\t@${REINPLACE_CMD} -e 's/-liconv/${ICONV_LIB}/' ${WRKSRC}/Makefile\n" #. type: delimited block = 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:4613 msgid "" "In some cases it is necessary to set alternate values or perform operations " "depending on whether there is a native `iconv`. [.filename]#bsd.port.pre." "mk# must be included before testing the value of `ICONV_LIB`:" msgstr "" "В некоторых случаях необходимо установить альтернативные значения или " "выполнить операции в зависимости от наличия встроенного `iconv`. [." "filename]#bsd.port.pre.mk# должен быть включен до проверки значения " "`ICONV_LIB`:" #. type: Block title #: documentation/content/en/books/porters-handbook/special/_index.adoc:4615 #, no-wrap msgid "Checking for Native `iconv` Availability" msgstr "Проверка доступности встроенной поддержки `iconv`" #. type: delimited block . 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:4629 #, no-wrap msgid "" "post-patch:\n" ".if empty(ICONV_LIB)\n" "\t# native iconv detected\n" "\t@${REINPLACE_CMD} -e 's|iconv||' ${WRKSRC}/Config.sh\n" ".endif\n" msgstr "" "post-patch:\n" ".if empty(ICONV_LIB)\n" "\t# native iconv detected\n" "\t@${REINPLACE_CMD} -e 's|iconv||' ${WRKSRC}/Config.sh\n" ".endif\n" #. type: delimited block . 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:4631 #, no-wrap msgid ".include \n" msgstr ".include \n" #. type: Title == #: documentation/content/en/books/porters-handbook/special/_index.adoc:4636 #, no-wrap msgid "Using Xfce" msgstr "Использование Xfce" #. type: delimited block = 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:4639 msgid "Ports that need Xfce libraries or applications set `USES=xfce`." msgstr "" "Порты, которым требуются библиотеки или приложения Xfce, устанавливают " "`USES=xfce`." #. type: delimited block = 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:4643 msgid "" "Specific Xfce library and application dependencies are set with values " "assigned to `USE_XFCE`. They are defined in [.filename]#/usr/ports/Mk/Uses/" "xfce.mk#. The possible values are:" msgstr "" "Конкретные зависимости библиотек и приложений Xfce задаются с помощью " "значений, присвоенных `USE_XFCE`. Они определены в [.filename]#/usr/ports/Mk/" "Uses/xfce.mk#. Возможные значения:" #. type: Block title #: documentation/content/en/books/porters-handbook/special/_index.adoc:4644 #, no-wrap msgid "Values of `USE_XFCE`" msgstr "Значения `USE_XFCE`" #. type: Labeled list #: documentation/content/en/books/porters-handbook/special/_index.adoc:4645 #, no-wrap msgid "garcon" msgstr "garcon" #. type: delimited block = 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:4647 msgid "package:sysutils/garcon[]" msgstr "package:sysutils/garcon[]" #. type: Labeled list #: documentation/content/en/books/porters-handbook/special/_index.adoc:4648 #, no-wrap msgid "libexo" msgstr "libexo" #. type: delimited block = 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:4650 msgid "package:x11/libexo[]" msgstr "package:x11/libexo[]" #. type: Labeled list #: documentation/content/en/books/porters-handbook/special/_index.adoc:4651 #, no-wrap msgid "libgui" msgstr "libgui" #. type: delimited block = 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:4653 msgid "package:x11-toolkits/libxfce4gui[]" msgstr "package:x11-toolkits/libxfce4gui[]" #. type: Labeled list #: documentation/content/en/books/porters-handbook/special/_index.adoc:4654 #, no-wrap msgid "libmenu" msgstr "libmenu" #. type: delimited block = 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:4656 msgid "package:x11/libxfce4menu[]" msgstr "package:x11/libxfce4menu[]" #. type: Labeled list #: documentation/content/en/books/porters-handbook/special/_index.adoc:4657 #, no-wrap msgid "libutil" msgstr "libutil" #. type: delimited block = 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:4659 msgid "package:x11/libxfce4util[]" msgstr "package:x11/libxfce4util[]" #. type: Labeled list #: documentation/content/en/books/porters-handbook/special/_index.adoc:4660 #, no-wrap msgid "panel" msgstr "panel" #. type: delimited block = 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:4662 msgid "package:x11-wm/xfce4-panel[]" msgstr "package:x11-wm/xfce4-panel[]" #. type: Labeled list #: documentation/content/en/books/porters-handbook/special/_index.adoc:4663 #, no-wrap msgid "thunar" msgstr "thunar" #. type: delimited block = 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:4665 msgid "package:x11-fm/thunar[]" msgstr "package:x11-fm/thunar[]" #. type: Labeled list #: documentation/content/en/books/porters-handbook/special/_index.adoc:4666 #, no-wrap msgid "xfconf" msgstr "xfconf" #. type: delimited block = 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:4668 msgid "package:x11/xfce4-conf[]" msgstr "package:x11/xfce4-conf[]" #. type: Block title #: documentation/content/en/books/porters-handbook/special/_index.adoc:4670 #, no-wrap msgid "`USES=xfce` Example" msgstr "Пример `USES=xfce`" #. type: delimited block . 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:4677 #, no-wrap msgid "" "USES=\t\txfce\n" "USE_XFCE=\tlibmenu\n" msgstr "" "USES=\t\txfce\n" "USE_XFCE=\tlibmenu\n" #. type: Block title #: documentation/content/en/books/porters-handbook/special/_index.adoc:4682 #, no-wrap msgid "Using Xfce's Own GTK2 Widgets" msgstr "Использование собственных виджетов GTK2 в Xfce" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:4686 msgid "" "In this example, the ported application uses the GTK2-specific widgets " "package:x11/libxfce4menu[] and package:x11/xfce4-conf[]." msgstr "" "В этом примере портированное приложение использует пакет виджетов, " "специфичных для GTK2: package:x11/libxfce4menu[] и package:x11/xfce4-conf[]." #. type: delimited block . 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:4691 #, no-wrap msgid "" "USES=\t\txfce:gtk2\n" "USE_XFCE=\tlibmenu xfconf\n" msgstr "" "USES=\t\txfce:gtk2\n" "USE_XFCE=\tlibmenu xfconf\n" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:4700 msgid "" "Xfce components included this way will automatically include any " "dependencies they need. It is no longer necessary to specify the entire " "list. If the port only needs package:x11-wm/xfce4-panel[], use:" msgstr "" "Компоненты Xfce, включённые таким образом, автоматически загрузят все " "необходимые зависимости. Указывать полный список больше не требуется. Если " "порту нужен только package:x11-wm/xfce4-panel[], используйте:" #. type: delimited block . 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:4705 #, no-wrap msgid "" "USES=\t\txfce\n" "USE_XFCE=\tpanel\n" msgstr "" "USES=\t\txfce\n" "USE_XFCE=\tpanel\n" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:4708 msgid "" "There is no need to list the components package:x11-wm/xfce4-panel[] needs " "itself like this:" msgstr "" "Нет необходимости перечислять компоненты package:x11-wm/xfce4-panel[], " "которые ему самому требуются, вот так:" #. type: delimited block . 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:4713 #, no-wrap msgid "" "USES=\t\txfce\n" "USE_XFCE=\tlibexo libmenu libutil panel\n" msgstr "" "USES=\t\txfce\n" "USE_XFCE=\tlibexo libmenu libutil panel\n" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:4717 msgid "" "However, Xfce components and non-Xfce dependencies of the port must be " "included explicitly. Do not count on an Xfce component to provide a sub-" "dependency other than itself for the main port." msgstr "" "Однако компоненты Xfce и зависимости порта, не относящиеся к Xfce, должны " "быть явно включены. Не рассчитывайте, что компонент Xfce предоставит " "дополнительную зависимость, кроме себя, для основного порта." #. type: Title == #: documentation/content/en/books/porters-handbook/special/_index.adoc:4720 #, no-wrap msgid "Using Budgie" msgstr "Использование Budgie" #. type: delimited block = 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:4723 msgid "" "Applications or libraries depending on the Budgie desktop should set `USES= " "budgie` and set `USE_BUDGIE` to the list of required components." msgstr "" "Приложения или библиотеки, зависящие от рабочего стола Budgie, должны " "указывать `USES= budgie` и устанавливать `USE_BUDGIE` в список необходимых " "компонентов." #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:4730 #, no-wrap msgid "`libbudgie`" msgstr "`libbudgie`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:4732 #, no-wrap msgid "Desktop core (library)" msgstr "Ядро рабочего стола (библиотека)" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:4733 #, no-wrap msgid "`libmagpie`" msgstr "`libmagpie`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:4735 #, no-wrap msgid "Budgie's X11 window manager and compositor library" msgstr "Оконный менеджер X11 и библиотека композитинга Budgie" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:4736 #, no-wrap msgid "`raven`" msgstr "`raven`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:4738 #, no-wrap msgid "All-in-one center in panel for accessing different applications widgets" msgstr "Универсальный центр в панели для доступа к различным виджетам приложений" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:4739 #, no-wrap msgid "`screensaver`" msgstr "`screensaver`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:4741 #, no-wrap msgid "Desktop-specific screensaver" msgstr "Рабочий стол: специальная заставка" #. type: delimited block = 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:4746 msgid "" "All application widgets communicate through the *org.budgie_desktop.Raven* " "service." msgstr "" "Все виджеты приложений взаимодействуют через службу *org.budgie_desktop." "Raven*." #. type: delimited block = 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:4748 msgid "" "The default dependency is lib- and run-time, it can be changed with `:build` " "or `:run`, for example:" msgstr "" "Зависимость по умолчанию включает время сборки и выполнения, её можно " "изменить с помощью `:build` или `:run`, например:" #. type: delimited block . 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:4753 #, no-wrap msgid "" "USES=\t\tbudgie\n" "USE_BUDGIE=\tscreensaver:build\n" msgstr "" "USES=\t\tbudgie\n" "USE_BUDGIE=\tscreensaver:build\n" #. type: Block title #: documentation/content/en/books/porters-handbook/special/_index.adoc:4757 #, no-wrap msgid "`USE_BUDGIE` Example" msgstr "Пример `USE_BUDGIE`" #. type: delimited block . 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:4764 #, no-wrap msgid "" "USES=\t\tbudgie gettext gnome meson pkgconfig\n" "USE_BUDGIE=\tlibbudgie\n" msgstr "" "USES=\t\tbudgie gettext gnome meson pkgconfig\n" "USE_BUDGIE=\tlibbudgie\n" #. type: Title == #: documentation/content/en/books/porters-handbook/special/_index.adoc:4768 #, no-wrap msgid "Using Databases" msgstr "Использование баз данных" #. type: delimited block = 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:4771 msgid "" "Use one of the `USES` macros from crossref:special[using-databases-uses," "Database `USES` Macros] to add a dependency on a database." msgstr "" "Используйте один из макросов `USES` из crossref:special[using-databases-uses," "Макросы `USES` для баз данных], чтобы добавить зависимость от базы данных." #. type: Block title #: documentation/content/en/books/porters-handbook/special/_index.adoc:4773 #, no-wrap msgid "Database `USES` Macros" msgstr "Макросы `USES` для баз данных" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:4777 #, no-wrap msgid "Database" msgstr "База данных" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:4779 #, no-wrap msgid "USES Macro" msgstr "Макрос USES" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:4780 #, no-wrap msgid "Berkeley DB" msgstr "Berkeley DB" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:4782 #, no-wrap msgid "crossref:uses[uses-bdb,`bdb`]" msgstr "crossref:uses[uses-bdb,`bdb`]" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:4783 #, no-wrap msgid "MariaDB, MySQL, Percona" msgstr "MariaDB, MySQL, Percona" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:4785 #, no-wrap msgid "crossref:uses[uses-mysql,`mysql`]" msgstr "crossref:uses[uses-mysql,`mysql`]" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:4786 #, no-wrap msgid "PostgreSQL" msgstr "PostgreSQL" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:4788 #, no-wrap msgid "crossref:uses[uses-pgsql,`pgsql`]" msgstr "crossref:uses[uses-pgsql,`pgsql`]" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:4789 #, no-wrap msgid "SQLite" msgstr "SQLite" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:4790 #, no-wrap msgid "crossref:uses[uses-sqlite,`sqlite`]" msgstr "crossref:uses[uses-sqlite,`sqlite`]" #. type: Block title #: documentation/content/en/books/porters-handbook/special/_index.adoc:4793 #, no-wrap msgid "Using Berkeley DB 6" msgstr "Использование Berkeley DB 6" #. type: delimited block . 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:4799 #, no-wrap msgid "USES=\tbdb:6\n" msgstr "USES=\tbdb:6\n" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:4802 msgid "See crossref:uses[uses-bdb,`bdb`] for more information." msgstr "" "См. crossref:uses[uses-bdb,`bdb`] для получения дополнительной информации." #. type: Block title #: documentation/content/en/books/porters-handbook/special/_index.adoc:4805 #, no-wrap msgid "Using MySQL" msgstr "Использование MySQL" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:4809 msgid "When a port needs the MySQL client library add" msgstr "Когда порту требуется клиентская библиотека MySQL, добавьте" #. type: delimited block . 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:4813 #, no-wrap msgid "USES=\tmysql\n" msgstr "USES=\tmysql\n" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:4816 msgid "See crossref:uses[uses-mysql,`mysql`] for more information." msgstr "" "См. crossref:uses[uses-mysql,`mysql`] для получения дополнительной " "информации." #. type: Block title #: documentation/content/en/books/porters-handbook/special/_index.adoc:4819 #, no-wrap msgid "Using PostgreSQL" msgstr "Использование PostgreSQL" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:4823 msgid "When a port needs the PostgreSQL server version 9.6 or later add" msgstr "Когда порту требуется сервер PostgreSQL версии 9.6 или новее, добавьте" #. type: delimited block . 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:4828 #, no-wrap msgid "" "USES=\t\tpgsql:9.6+\n" "WANT_PGSQL=\tserver\n" msgstr "" "USES=\t\tpgsql:9.6+\n" "WANT_PGSQL=\tserver\n" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:4831 msgid "See crossref:uses[uses-pgsql,`pgsql`] for more information." msgstr "" "См. crossref:uses[uses-pgsql,`pgsql`] для получения дополнительной " "информации." #. type: Block title #: documentation/content/en/books/porters-handbook/special/_index.adoc:4834 #, no-wrap msgid "Using SQLite 3" msgstr "Использование SQLite 3" #. type: delimited block . 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:4840 #, no-wrap msgid "USES=\tsqlite:3\n" msgstr "USES=\tsqlite:3\n" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:4843 msgid "See crossref:uses[uses-sqlite,`sqlite`] for more information." msgstr "" "См. crossref:uses[uses-sqlite,`sqlite`] для получения дополнительной " "информации." #. type: Title == #: documentation/content/en/books/porters-handbook/special/_index.adoc:4846 #, no-wrap msgid "Starting and Stopping Services (`rc` Scripts)" msgstr "Запуск и остановка служб (скрипты `rc`)" #. type: delimited block = 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:4853 msgid "" "[.filename]#rc.d# scripts are used to start services on system startup, and " "to give administrators a standard way of stopping, starting and restarting " "the service. Ports integrate into the system [.filename]#rc.d# framework. " "Details on its usage can be found in extref:{handbook}config[the rc.d " "Handbook chapter, configtuning-rcd]. Detailed explanation of the available " "commands is provided in man:rc[8] and man:rc.subr[8]. Finally, there is " "extref:{rc-scripting}[an article] on practical aspects of [.filename]#rc.d# " "scripting." msgstr "" "[.filename]#rc.d# скрипты используются для запуска служб при загрузке " "системы, а также предоставляют администраторам стандартный способ остановки, " "запуска и перезапуска служб. Порты интегрируются в систему [.filename]#rc." "d#. Подробности использования можно найти в extref:{handbook}config[главе о " "rc.d Руководства FreeBSD, configtuning-rcd]. Детальное объяснение доступных " "команд приведено в man:rc[8] и man:rc.subr[8]. Наконец, существует extref:" "{rc-scripting}[статья], посвящённая практическим аспектам написания [." "filename]#rc.d# скриптов." #. type: delimited block = 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:4856 msgid "" "With a mythical port called _doorman_, which needs to start a _doormand_ " "daemon. Add the following to the [.filename]#Makefile#:" msgstr "" "С мифическим портом под названием _doorman_, которому необходимо запустить " "демон _doormand_. Добавьте следующее в [.filename]#Makefile#:" #. type: delimited block . 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:4860 #, no-wrap msgid "USE_RC_SUBR=\tdoormand\n" msgstr "USE_RC_SUBR=\tdoormand\n" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:4867 msgid "" "Multiple scripts may be listed and will be installed. Scripts must be " "placed in the [.filename]#files# subdirectory and a `.in` suffix must be " "added to their filename. Standard `SUB_LIST` expansions will be ran against " "this file. Use of the `%%PREFIX%%` and `%%LOCALBASE%%` expansions is " "strongly encouraged as well. More on `SUB_LIST` in crossref:pkg-files[using-" "sub-files,the relevant section]." msgstr "" "Можно указать несколько скриптов, которые будут установлены. Скрипты должны " "быть размещены в подкаталоге [.filename]#files#, и к их имени должен быть " "добавлен суффикс `.in`. Для этого файла будут выполнены стандартные " "подстановки `SUB_LIST`. Также настоятельно рекомендуется использовать " "подстановки `%%PREFIX%%` и `%%LOCALBASE%%`. Подробнее о `SUB_LIST` см. в " "crossref:pkg-files[using-sub-files,соответствующем разделе]." #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:4869 msgid "" "As of FreeBSD 6.1-RELEASE, local [.filename]#rc.d# scripts (including those " "installed by ports) are included in the overall man:rcorder[8] of the base " "system." msgstr "" "Начиная с FreeBSD 6.1-RELEASE, локальные скрипты [.filename]#rc.d# (включая " "те, что установлены через порты) включены в общий man:rcorder[8] базовой " "системы." #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:4871 msgid "" "An example simple [.filename]#rc.d# script to start the doormand daemon:" msgstr "Пример простого скрипта [.filename]#rc.d# для запуска демона doormand:" #. type: delimited block . 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:4875 #, no-wrap msgid "#!/bin/sh\n" msgstr "#!/bin/sh\n" #. type: delimited block . 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:4887 #, no-wrap msgid "" "# PROVIDE: doormand\n" "# REQUIRE: LOGIN\n" "# KEYWORD: shutdown\n" "#\n" "# Add these lines to /etc/rc.conf.local or /etc/rc.conf\n" "# to enable this service:\n" "#\n" "# doormand_enable (bool):\tSet to NO by default.\n" "#\t\t\t\tSet it to YES to enable doormand.\n" "# doormand_config (path):\tSet to %%PREFIX%%/etc/doormand/doormand.cf\n" "#\t\t\t\tby default.\n" msgstr "" "# PROVIDE: doormand\n" "# REQUIRE: LOGIN\n" "# KEYWORD: shutdown\n" "#\n" "# Add these lines to /etc/rc.conf.local or /etc/rc.conf\n" "# to enable this service:\n" "#\n" "# doormand_enable (bool):\tSet to NO by default.\n" "#\t\t\t\tSet it to YES to enable doormand.\n" "# doormand_config (path):\tSet to %%PREFIX%%/etc/doormand/doormand.cf\n" "#\t\t\t\tby default.\n" #. type: delimited block . 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:4889 #, no-wrap msgid ". /etc/rc.subr\n" msgstr ". /etc/rc.subr\n" #. type: delimited block . 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:4892 #, no-wrap msgid "" "name=doormand\n" "rcvar=doormand_enable\n" msgstr "" "name=doormand\n" "rcvar=doormand_enable\n" #. type: delimited block . 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:4894 #, no-wrap msgid "load_rc_config $name\n" msgstr "load_rc_config $name\n" #. type: delimited block . 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:4897 #, no-wrap msgid "" ": ${doormand_enable:=\"NO\"}\n" ": ${doormand_config=\"%%PREFIX%%/etc/doormand/doormand.cf\"}\n" msgstr "" ": ${doormand_enable:=\"NO\"}\n" ": ${doormand_config=\"%%PREFIX%%/etc/doormand/doormand.cf\"}\n" #. type: delimited block . 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:4900 #, no-wrap msgid "" "command=%%PREFIX%%/sbin/${name}\n" "pidfile=/var/run/${name}.pid\n" msgstr "" "command=%%PREFIX%%/sbin/${name}\n" "pidfile=/var/run/${name}.pid\n" #. type: delimited block . 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:4902 #, no-wrap msgid "command_args=\"-p $pidfile -f $doormand_config\"\n" msgstr "command_args=\"-p $pidfile -f $doormand_config\"\n" #. type: delimited block . 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:4904 #, no-wrap msgid "run_rc_command \"$1\"\n" msgstr "run_rc_command \"$1\"\n" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:4907 msgid "" "Unless there is a very good reason to start the service earlier, or it runs " "as a particular user (other than root), all ports scripts must use:" msgstr "" "Если нет очень веской причины запускать службу раньше или она работает от " "имени определённого пользователя (не root), все скрипты портов должны " "использовать:" #. type: delimited block . 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:4911 #, no-wrap msgid "REQUIRE: LOGIN\n" msgstr "REQUIRE: LOGIN\n" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:4914 msgid "" "If the startup script launches a daemon that must be shutdown, the following " "will trigger a stop of the service on system shutdown:" msgstr "" "Если скрипт запуска демона требует его остановки, следующий код активирует " "остановку службы при выключении системы:" #. type: delimited block . 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:4918 #, no-wrap msgid "KEYWORD: shutdown\n" msgstr "KEYWORD: shutdown\n" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:4921 msgid "" "If the script is not starting a persistent service this is not necessary." msgstr "Если скрипт не запускает постоянную службу, это не требуется." #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:4924 msgid "" "For optional configuration elements the \"=\" style of default variable " "assignment is preferable to the \":=\" style here, since the former sets a " "default value only if the variable is unset, and the latter sets one if the " "variable is unset _or_ null. A user might very well include something like:" msgstr "" "Для необязательных элементов конфигурации предпочтительнее использовать " "стиль присваивания переменных по умолчанию \"=\" вместо стиля \":=\", так " "как первый устанавливает значение по умолчанию только если переменная не " "задана, а второй — если переменная не задана _или_ равна null. Пользователь " "может включить что-то вроде:" #. type: delimited block . 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:4928 #, no-wrap msgid "doormand_flags=\"\"\n" msgstr "doormand_flags=\"\"\n" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:4932 msgid "" "in their [.filename]#rc.conf.local#, and a variable substitution using \":=" "\" would inappropriately override the user's intention. The `_enable` " "variable is not optional, and must use the \":\" for the default." msgstr "" "в свой [.filename]#rc.conf.local#, а подстановка переменной с использованием " "\":=\" некорректно переопределила бы намерение пользователя. Переменная " "`_enable` не является опциональной и должна использовать \":\" для значения " "по умолчанию." #. type: delimited block = 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:4937 msgid "" "Ports _must not_ start and stop their services when installing and " "deinstalling. Do not abuse the [.filename]#plist# keywords described in " "crossref:plist[plist-keywords-base-exec, \"the @preexec command,@postexec " "command,@preunexec command,@postunexec command section\"] by running " "commands that modify the currently running system, including starting or " "stopping services." msgstr "" "Порты _не должны_ запускать и останавливать свои службы при установке и " "удалении. Не злоупотребляйте ключевыми словами [.filename]#plist#, " "описанными в crossref:plist[plist-keywords-base-exec, \"разделе @preexec " "command,@postexec command,@preunexec command,@postunexec command\"], " "выполняя команды, которые изменяют работающую систему, включая запуск или " "остановку служб." #. type: Title === #: documentation/content/en/books/porters-handbook/special/_index.adoc:4940 #, no-wrap msgid "Pre-Commit Checklist" msgstr "Pre-Commit Checklist" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:4943 msgid "" "Before contributing a port with an [.filename]#rc.d# script, and more " "importantly, before committing one, please consult this checklist to be sure " "that it is ready." msgstr "" "Прежде чем внести порт с [.filename]#rc.d# скриптом, и что более важно, " "перед его коммитом, пожалуйста, ознакомьтесь с этим контрольным списком, " "чтобы убедиться, что он готов." #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:4945 msgid "" "The package:devel/rclint[] port can check for most of these, but it is not a " "substitute for proper review." msgstr "" "Порт package:devel/rclint[] может проверить большинство из них, но он не " "заменяет тщательного просмотра и проверки." #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:4948 msgid "" "If this is a new file, does it have a [.filename]#.sh# extension? If so, " "that must be changed to just [.filename]#file.in# since [.filename]#rc.d# " "files may not end with that extension." msgstr "" "Если это новый файл, имеет ли он расширение [.filename]#.sh#? Если да, его " "необходимо изменить на просто [.filename]#file.in#, поскольку файлы [." "filename]#rc.d# не могут оканчиваться таким расширением." #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:4949 msgid "" "Do the name of the file (minus [.filename]#.in#), the `PROVIDE` line, and `" "$` _name_ all match? The file name matching `PROVIDE` makes debugging " "easier, especially for man:rcorder[8] issues. Matching the file name and `" "$`_name_ makes it easier to figure out which variables are relevant in [." "filename]#rc.conf[.local]#. It is also a policy for all new scripts, " "including those in the base system." msgstr "" "Совпадают ли имя файла (без [.filename]#.in#), строка `PROVIDE` и `$`_name_? " "Совпадение имени файла с `PROVIDE` упрощает отладку, особенно при проблемах " "с man:rcorder[8]. Совпадение имени файла и `$`_name_ облегчает понимание " "того, какие переменные актуальны в [.filename]#rc.conf[.local]#. Это также " "является политикой для всех новых скриптов, включая те, что в базовой " "системе." #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:4950 msgid "" "Is the `REQUIRE` line set to `LOGIN`? This is mandatory for scripts that run " "as a non-root user. If it runs as root, is there a good reason for it to run " "prior to `LOGIN`? If not, it must run after so that local scrips can be " "loosely grouped to a point in man:rcorder[8] after most everything in the " "base is already running." msgstr "" "Установлена ли строка `REQUIRE` в значение `LOGIN`? Это обязательно для " "скриптов, выполняемых от имени непривилегированного пользователя. Если " "скрипт выполняется от имени root, есть ли веская причина для его запуска до " "`LOGIN`? Если нет, он должен запускаться после, чтобы локальные скрипты " "можно было условно сгруппировать в man:rcorder[8] после запуска большинства " "компонентов базовой системы." #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:4951 msgid "" "Does the script start a persistent service? If so, it must have `KEYWORD: " "shutdown`." msgstr "" "Запускает ли скрипт постоянную службу? Если да, он должен содержать " "`KEYWORD: shutdown`." #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:4952 msgid "" "Make sure there is no `KEYWORD: FreeBSD` present. This has not been " "necessary nor desirable for years. It is also an indication that the new " "script was copy/pasted from an old script, so extra caution must be given to " "the review." msgstr "" "Убедитесь, что отсутствует `KEYWORD: FreeBSD`. Это перестало быть " "необходимым или желательным уже много лет. Это также указывает на то, что " "новый скрипт был скопирован/вставлен из старого скрипта, поэтому следует " "проявить дополнительную осторожность при проверке." #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:4953 msgid "" "If the script uses an interpreted language like `perl`, `python`, or `ruby`, " "make certain that `command_interpreter` is set appropriately, for example, " "for Perl, by adding `PERL=${PERL}` to `SUB_LIST` and using `%%PERL%%`. " "Otherwise," msgstr "" "Если скрипт использует интерпретируемый язык, например `perl`, `python` или " "`ruby`, убедитесь, что `command_interpreter` установлен корректно. Например, " "для Perl добавьте `PERL=${PERL}` в `SUB_LIST` и используйте `%%PERL%%`. В " "противном случае," #. type: delimited block . 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:4957 #, no-wrap msgid "# service name stop\n" msgstr "# service name stop\n" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:4960 msgid "" "will probably not work properly. See man:service[8] for more information." msgstr "" "вероятно, не будет работать корректно. Дополнительную информацию смотрите в " "man:service[8]." #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:4961 msgid "" "Have all occurrences of [.filename]#/usr/local# been replaced with `%%PREFIX%" "%`?" msgstr "" "Проверено, что все вхождения [.filename]#/usr/local# заменены на `%%PREFIX%" "%`?" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:4962 msgid "Do the default variable assignments come after `load_rc_config`?" msgstr "" "Делаются ли присваивания переменным по умолчанию после `load_rc_config`?" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:4963 msgid "" "Are there default assignments to empty strings? They should be removed, but " "double-check that the option is documented in the comments at the top of the " "file." msgstr "" "Используются ли пустые строки при присвоении значений по умолчанию? Такие " "присвоения должны быть удалены, но перепроверьте, что эти параметры " "задокументированы в комментариях в начале файла." #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:4964 msgid "Are things that are set in variables actually used in the script?" msgstr "" "Действительно ли в сценариях используются значения, присвоенные переменным?" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:4965 msgid "" "Are options listed in the default _name_`_flags` things that are actually " "mandatory? If so, they must be in `command_args`. `-d` is a red flag (pardon " "the pun) here, since it is usually the option to \"daemonize\" the process, " "and therefore is actually mandatory." msgstr "" "Являются ли опции, перечисленные в стандартном _name_`_flags`, " "обязательными? Если да, они должны быть в `command_args`. Флаг `-d` здесь, " "как красный флаг (простите за каламбур), так как обычно это опция для " "\"демонизации\" процесса и, следовательно, фактически обязательна." #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:4966 msgid "" "`_name__flags` must never be included in `command_args` (and vice versa, " "although that error is less common)." msgstr "" "`_name__flags` никогда не должны включаться в `command_args` (и наоборот, " "хотя такая ошибка встречается реже)." #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:4967 msgid "" "Does the script execute any code unconditionally? This is frowned on. " "Usually these things must be dealt with through a `start_precmd`." msgstr "" "Выполняет ли скрипт любой код безусловно? Это не приветствуется. Обычно " "такие вещи должны обрабатываться через `start_precmd`." #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:4968 msgid "" "All boolean tests must use the `checkyesno` function. No hand-rolled tests " "for `[Yy][Ee][Ss]`, etc." msgstr "" "Все логические проверки должны использовать функцию `checkyesno`. Не " "допускаются самодельные проверки на `[Yy][Ee][Ss]` и т.п." #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:4969 msgid "" "If there is a loop (for example, waiting for something to start) does it " "have a counter to terminate the loop? We do not want the boot to be stuck " "forever if there is an error." msgstr "" "Если есть цикл (например, ожидание запуска чего-либо), есть ли в нём счётчик " "для завершения цикла? Мы не хотим, чтобы загрузка зависала навсегда в случае " "ошибки." #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:4970 msgid "" "Does the script create files or directories that need specific permissions, " "for example, a [.filename]#pid# that needs to be owned by the user that runs " "the process? Rather than the traditional man:touch[1]/man:chown[8]/man:" "chmod[1] routine, consider using man:install[1] with the proper command line " "arguments to do the whole procedure with one step." msgstr "" "Создает ли скрипт файлы или каталоги, требующие определённых разрешений, " "например, [.filename]#pid#, который должен принадлежать пользователю, " "запускающему процесс? Вместо традиционной последовательности man:touch[1]/" "man:chown[8]/man:chmod[1] рассмотрите использование man:install[1] с " "соответствующими аргументами командной строки, чтобы выполнить всю процедуру " "за один шаг." #. type: Title == #: documentation/content/en/books/porters-handbook/special/_index.adoc:4972 #, no-wrap msgid "Adding Users and Groups" msgstr "Добавление пользователей и групп" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:4977 msgid "" "Some ports require a particular user account to be present, usually for " "daemons that run as that user. For these ports, choose a _unique_ UID from " "50 to 999 and register it in [.filename]#ports/UIDs# (for users) and [." "filename]#ports/GIDs# (for groups). The unique identification should be the " "same for users and groups." msgstr "" "Некоторые порты требуют наличия определённой учётной записи пользователя, " "обычно для демонов, работающих от имени этого пользователя. Для таких портов " "выберите _уникальный_ UID в диапазоне от 50 до 999 и зарегистрируйте его в [." "filename]#ports/UIDs# (для пользователей) и [.filename]#ports/GIDs# (для " "групп). Уникальный идентификатор должен быть одинаковым для пользователей и " "групп." #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:4979 msgid "" "Please include a patch against these two files when requiring a new user or " "group to be created for the port." msgstr "" "Пожалуйста, приложите патч для этих двух файлов, если требуется создать " "нового пользователя или группу для порта." #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:4981 msgid "" "Then use `USERS` and `GROUPS` in [.filename]#Makefile#, and the user will be " "automatically created when installing the port." msgstr "" "Затем используйте `USERS` и `GROUPS` в [.filename]#Makefile#, и пользователь " "будет автоматически создан при установке порта." #. type: delimited block . 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:4986 #, no-wrap msgid "" "USERS=\tpulse\n" "GROUPS=\tpulse pulse-access pulse-rt\n" msgstr "" "USERS=\tpulse\n" "GROUPS=\tpulse pulse-access pulse-rt\n" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:4989 msgid "" "The current list of reserved UIDs and GIDs can be found in [.filename]#ports/" "UIDs# and [.filename]#ports/GIDs#." msgstr "" "Текущий список зарезервированных UID и GID можно найти в [.filename]#ports/" "UIDs# и [.filename]#ports/GIDs#." #. type: Title == #: documentation/content/en/books/porters-handbook/special/_index.adoc:4991 #, no-wrap msgid "Ports That Rely on Kernel Sources" msgstr "Порты, зависящие от исходных кодов ядра" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:4995 msgid "" "Some ports (such as kernel loadable modules) need the kernel source files so " "that the port can compile. Here is the correct way to determine if the user " "has them installed:" msgstr "" "Некоторые порты (например, загружаемые модули ядра) требуют исходные файлы " "ядра для компиляции порта. Вот правильный способ проверить, установлены ли " "они у пользователя:" #. type: delimited block . 4 #: documentation/content/en/books/porters-handbook/special/_index.adoc:4999 #, no-wrap msgid "USES=\tkmod\n" msgstr "USES=\tkmod\n" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:5002 msgid "" "Apart from this check, the `kmod` feature takes care of most items that " "these ports need to take into account." msgstr "" "Помимо этой проверки, функция `kmod` учитывает большинство аспектов, которые " "необходимо принимать во внимание данным портам." #. type: Title == #: documentation/content/en/books/porters-handbook/special/_index.adoc:5004 #, no-wrap msgid "Go Libraries" msgstr "Библиотеки Go" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:5008 msgid "" "Ports must not package or install Go libs or source code. Go ports must " "fetch the required deps at the normal fetch time and should only install the " "programs and things users need, not the things Go developers would need." msgstr "" "Порты не должны упаковывать или устанавливать библиотеки или исходный код " "Go. Порты Go должны загружать необходимые зависимости в обычное время " "загрузки и должны устанавливать только программы и то, что нужно " "пользователям, а не то, что нужно разработчикам на Go." #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:5010 msgid "Ports should (in order of preference):" msgstr "Порты должны (в порядке предпочтения):" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:5012 msgid "Use vendored dependencies included with the package source." msgstr "Использовать зависимости, включенные в исходный код пакета." #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:5013 msgid "" "Fetch the versions of deps specified by upstream (in the case of go.mod, " "vendor.json or similar)." msgstr "" "Получить версии зависимостей, указанные вышестоящим проектом (в случае go." "mod, vendor.json или аналогичных)." #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:5014 msgid "" "As a last resort (deps are not included nor versions specified exactly) " "fetch versions of dependencies available at the time of upstream development/" "release." msgstr "" "В крайнем случае (зависимости не включены и версии не указаны точно) " "получить версии зависимостей, доступные на момент разработки/выпуска " "вышестоящего проекта." #. type: Title == #: documentation/content/en/books/porters-handbook/special/_index.adoc:5016 #, no-wrap msgid "Haskell Libraries" msgstr "Библиотеки Haskell" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:5020 msgid "" "Just like in case of Go language, Ports must not package or install Haskell " "libraries. Haskell ports must link statically to their dependencies and " "fetch all distribution files on fetch stage." msgstr "" "Как и в случае с языком Go, коллекция портов не должна включать или " "устанавливать библиотеки Haskell. Порты Haskell должны статически " "линковаться со своими зависимостями и загружать все распространяемые файлы " "на этапе fetch." #. type: Title == #: documentation/content/en/books/porters-handbook/special/_index.adoc:5022 #, no-wrap msgid "Shell Completion Files" msgstr "Файлы завершения командной оболочки" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:5027 msgid "" "Many modern shells (including bash, fish, tcsh and zsh) support parameter " "and/or option tab-completion. This support usually comes from completion " "files, which contain the definitions for how tab completion will work for a " "certain command. Ports sometimes ship with their own completion files, or " "porters may have created them themselves." msgstr "" "Многие современные оболочки (включая bash, fish, tcsh и zsh) поддерживают " "табуляцию для параметров и/или опций. Эта поддержка обычно обеспечивается " "файлами завершения, которые содержат определения того, как будет работать " "завершение по табуляции для определённой команды. Порты иногда поставляются " "со своими собственными файлами завершения, или разработчики портов могут " "создавать их самостоятельно." #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:5031 msgid "" "When available, completion files should always be installed. It is not " "necessary to make an option for it. If an option is used, though, always " "enable it in `OPTIONS_DEFAULT`." msgstr "" "Если доступны файлы завершения, их всегда следует устанавливать. Нет " "необходимости создавать для этого опцию. Однако если опция используется, " "всегда включайте её в `OPTIONS_DEFAULT`." #. type: Block title #: documentation/content/en/books/porters-handbook/special/_index.adoc:5033 #, no-wrap msgid "Full shell completion file names" msgstr "Полные имена файлов завершения оболочки" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:5037 #, no-wrap msgid "`bash`" msgstr "`bash`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:5038 #, no-wrap msgid "[.filename]#${PREFIX}/etc/bash_completion.d# or [.filename]#${PREFIX}/share/bash-completion/completions#" msgstr "[.filename]#${PREFIX}/etc/bash_completion.d# or [.filename]#${PREFIX}/share/bash-completion/completions#" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:5040 #, no-wrap msgid "(any unique file names in one of these folders)" msgstr "(любые уникальные имена файлов в одной из этих папок)" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:5041 #, no-wrap msgid "`fish`" msgstr "`fish`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:5042 #, no-wrap msgid "[.filename]#${PREFIX}/share/fish/completions/${PORTNAME}.fish#" msgstr "[.filename]#${PREFIX}/share/fish/completions/${PORTNAME}.fish#" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:5045 #, no-wrap msgid "`zsh`" msgstr "`zsh`" #. type: Table #: documentation/content/en/books/porters-handbook/special/_index.adoc:5046 #, no-wrap msgid "[.filename]#${PREFIX}/share/zsh/site-functions/_${PORTNAME}#" msgstr "[.filename]#${PREFIX}/share/zsh/site-functions/_${PORTNAME}#" #. type: Plain text #: documentation/content/en/books/porters-handbook/special/_index.adoc:5049 msgid "Do not register any dependencies on the shells themselves." msgstr "Не регистрируйте зависимости от самих оболочек."