diff options
Diffstat (limited to 'documentation/content/ru/books/porters-handbook/special/_index.po')
-rw-r--r-- | documentation/content/ru/books/porters-handbook/special/_index.po | 14978 |
1 files changed, 14978 insertions, 0 deletions
diff --git a/documentation/content/ru/books/porters-handbook/special/_index.po b/documentation/content/ru/books/porters-handbook/special/_index.po new file mode 100644 index 0000000000..ca4f4e8072 --- /dev/null +++ b/documentation/content/ru/books/porters-handbook/special/_index.po @@ -0,0 +1,14978 @@ +# SOME DESCRIPTIVE TITLE +# Copyright (C) YEAR The FreeBSD Project +# This file is distributed under the same license as the FreeBSD Documentation package. +# Vladlen Popolitov <vladlenpopolitov@list.ru>, 2025. +msgid "" +msgstr "" +"Project-Id-Version: FreeBSD Documentation VERSION\n" +"POT-Creation-Date: 2025-09-18 22:05+0300\n" +"PO-Revision-Date: 2025-07-24 21:10+0000\n" +"Last-Translator: Vladlen Popolitov <vladlenpopolitov@list.ru>\n" +"Language-Team: Russian <https://translate-dev.freebsd.org/projects/" +"documentation/booksporters-handbookspecial_index/ru/>\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 Hash Value: 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 Hash Value: 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 "Staging" + +#. 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:4228 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4488 +#, 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:3790 +#, 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:3791 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3825 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3868 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3894 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3998 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4168 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4220 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4312 +#: 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:4726 +#, 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:3651 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4252 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4276 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4514 +#, no-wrap +msgid ".include <bsd.port.mk>\n" +msgstr ".include <bsd.port.mk>\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 <bsd.port.options.mk>\n" +msgstr ".include <bsd.port.options.mk>\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:3769 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4070 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4286 +#, 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:3911 +#, 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:3857 +#, 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:3847 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3867 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3892 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3996 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4166 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4218 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4310 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4401 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4463 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4724 +#, 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:3926 +#, 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/" +"openjdk18[], with package:java/openjdk17[], package:java/openjdk16[], " +"package:java/openjdk15[], package:java/openjdk14[], package:java/" +"openjdk13[], package:java/openjdk12[], package:java/openjdk11[], " +"package:java/openjdk8[], and package:java/openjdk7[] also available." +msgstr "" +"В коллекции портов доступно несколько JDK от различных поставщиков и в " +"нескольких версиях. Если порт должен использовать определённую версию, " +"укажите её с помощью переменной `JAVA_VERSION`. Самая актуальная версия — " +"package:java/openjdk18[], также доступны package:java/openjdk17[], " +"package:java/openjdk16[], package:java/openjdk15[], package:java/" +"openjdk14[], package:java/openjdk13[], package:java/openjdk12[], " +"package:java/openjdk11[], package:java/openjdk8[] и package:java/openjdk7[]." + +#. 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 "`PYTHON_PKGNAMEPREFIX`" +msgstr "`PYTHON_PKGNAMEPREFIX`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3584 +#, 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:3585 +#, no-wrap +msgid "`PYTHON_SITELIBDIR`" +msgstr "`PYTHON_SITELIBDIR`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3587 +#, 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:3588 +#, no-wrap +msgid "`PYTHONPREFIX_SITELIBDIR`" +msgstr "`PYTHONPREFIX_SITELIBDIR`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3590 +#, 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:3591 +#, no-wrap +msgid "`PYTHON_CMD`" +msgstr "`PYTHON_CMD`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3592 +#, no-wrap +msgid "Python interpreter command line, including version number." +msgstr "Интерпретатор командной строки Python, включая номер версии." + +#. type: Block title +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3595 +#, no-wrap +msgid "Python Module Dependency Helpers" +msgstr "Помощники зависимостей модуля Python" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3599 +#, no-wrap +msgid "`PYNUMERIC`" +msgstr "`PYNUMERIC`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3601 +#, no-wrap +msgid "Dependency line for numeric extension." +msgstr "Строка зависимости для числового расширения." + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3602 +#, no-wrap +msgid "`PYNUMPY`" +msgstr "`PYNUMPY`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3604 +#, 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:3605 +#, no-wrap +msgid "`PYXML`" +msgstr "`PYXML`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3607 +#, 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:3608 +#, no-wrap +msgid "`PY_ENUM34`" +msgstr "`PY_ENUM34`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3610 +#, 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:3611 +#, no-wrap +msgid "`PY_ENUM_COMPAT`" +msgstr "`PY_ENUM_COMPAT`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3613 +#, 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:3614 +#, no-wrap +msgid "`PY_PATHLIB`" +msgstr "`PY_PATHLIB`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3616 +#, 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:3617 +#, no-wrap +msgid "`PY_IPADDRESS`" +msgstr "`PY_IPADDRESS`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3619 +#, 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:3620 +#, no-wrap +msgid "`PY_FUTURES`" +msgstr "`PY_FUTURES`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3621 +#, 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:3624 +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:3629 +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:3632 +#, 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:3640 +#, 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:3644 +#, 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:3646 +#, 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:3649 +#, 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:3659 +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:3665 +#, 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:3668 +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 "" +"Это перекомпилирует исходники с путём, относительным к stage-директории, и " +"добавляет значение `PREFIX` к имени файла, записанному в байт-" +"компилированном выходном файле с помощью `-d`. `-f` требуется для " +"принудительной перекомпиляции, а `:S;${PREFIX}/;;` удаляет префиксы из " +"значения `PYTHONPREFIX_SITELIBDIR`, чтобы сделать его относительным к " +"`PREFIX`." + +#. type: Title == +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3670 +#, no-wrap +msgid "Using Tcl/Tk" +msgstr "Использование Tcl/Tk" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3675 +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:3677 +#, 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:3681 +#, no-wrap +msgid "`TCL_VER`" +msgstr "`TCL_VER`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3683 +#, no-wrap +msgid "chosen major.minor version of Tcl" +msgstr "выбранная версия Tcl major.minor" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3684 +#, no-wrap +msgid "`TCLSH`" +msgstr "`TCLSH`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3686 +#, no-wrap +msgid "full path of the Tcl interpreter" +msgstr "полный путь к интерпретатору Tcl" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3687 +#, no-wrap +msgid "`TCL_LIBDIR`" +msgstr "`TCL_LIBDIR`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3689 +#, no-wrap +msgid "path of the Tcl libraries" +msgstr "путь к библиотекам Tcl" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3690 +#, no-wrap +msgid "`TCL_INCLUDEDIR`" +msgstr "`TCL_INCLUDEDIR`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3692 +#, no-wrap +msgid "path of the Tcl C header files" +msgstr "путь к заголовочным файлам Tcl C" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3693 +#, no-wrap +msgid "`TCL_PKG_LIB_PREFIX`" +msgstr "`TCL_PKG_LIB_PREFIX`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3695 +#, no-wrap +msgid "Library prefix, as per TIP595" +msgstr "Префикс библиотеки, согласно TIP595" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3696 +#, no-wrap +msgid "`TCL_PKG_STUB_POSTFIX`" +msgstr "`TCL_PKG_STUB_POSTFIX`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3698 +#, no-wrap +msgid "Stub library postfix" +msgstr "Заглушка библиотеки postfix" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3699 +#, no-wrap +msgid "`TK_VER`" +msgstr "`TK_VER`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3701 +#, no-wrap +msgid "chosen major.minor version of Tk" +msgstr "выбранная версия Tk major.minor" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3702 +#, no-wrap +msgid "`WISH`" +msgstr "`WISH`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3704 +#, no-wrap +msgid "full path of the Tk interpreter" +msgstr "полный путь к интерпретатору Tk" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3705 +#, no-wrap +msgid "`TK_LIBDIR`" +msgstr "`TK_LIBDIR`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3707 +#, no-wrap +msgid "path of the Tk libraries" +msgstr "путь к библиотекам Tk" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3708 +#, no-wrap +msgid "`TK_INCLUDEDIR`" +msgstr "`TK_INCLUDEDIR`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3709 +#, 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:3713 +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:3715 +#, no-wrap +msgid "Using SDL" +msgstr "Использование SDL" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3718 +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:3720 +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:3722 +msgid "sdl: package:devel/sdl12[]" +msgstr "sdl: package:devel/sdl12[]" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3723 +msgid "console: package:devel/sdl_console[]" +msgstr "console: package:devel/sdl_console[]" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3724 +msgid "gfx: package:graphics/sdl_gfx[]" +msgstr "gfx: package:graphics/sdl_gfx[]" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3725 +msgid "image: package:graphics/sdl_image[]" +msgstr "image: package:graphics/sdl_image[]" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3726 +msgid "mixer: package:audio/sdl_mixer[]" +msgstr "mixer: package:audio/sdl_mixer[]" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3727 +msgid "mm: package:devel/sdlmm[]" +msgstr "mm: package:devel/sdlmm[]" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3728 +msgid "net: package:net/sdl_net[]" +msgstr "net: package:net/sdl_net[]" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3729 +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:3730 +msgid "sound: package:audio/sdl_sound[]" +msgstr "sound: package:audio/sdl_sound[]" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3731 +msgid "ttf: package:graphics/sdl_ttf[]" +msgstr "ttf: package:graphics/sdl_ttf[]" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3733 +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:3735 +msgid "sdl: package:devel/sdl20[]" +msgstr "sdl: package:devel/sdl20[]" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3736 +msgid "gfx: package:graphics/sdl2_gfx[]" +msgstr "gfx: package:graphics/sdl2_gfx[]" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3737 +msgid "image: package:graphics/sdl2_image[]" +msgstr "image: package:graphics/sdl2_image[]" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3738 +msgid "mixer: package:audio/sdl2_mixer[]" +msgstr "mixer: package:audio/sdl2_mixer[]" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3739 +msgid "net: package:net/sdl2_net[]" +msgstr "net: package:net/sdl2_net[]" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3740 +msgid "ttf: package:graphics/sdl2_ttf[]" +msgstr "ttf: package:graphics/sdl2_ttf[]" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3742 +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:3746 +#, 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:3749 +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:3751 +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:3753 +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:3754 +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:3755 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3761 +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:3757 +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:3759 +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:3760 +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:3764 +#, no-wrap +msgid "Using wxWidgets" +msgstr "Использование wxWidgets" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3767 +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:3773 +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:3779 +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:3781 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4082 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4301 +#, no-wrap +msgid "Version Selection" +msgstr "Выбор версии" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3784 +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:3786 +#, no-wrap +msgid "Variables to Select wxWidgets Versions" +msgstr "Переменные для выбора версий wxWidgets" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3793 +#, no-wrap +msgid "Default value" +msgstr "Значение по умолчанию" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3794 +#, no-wrap +msgid "`USE_WX`" +msgstr "`USE_WX`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3795 +#, no-wrap +msgid "List of versions the port can use" +msgstr "Список версий, которые порт может использовать" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3797 +#, no-wrap +msgid "All available versions" +msgstr "Все доступные версии" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3798 +#, no-wrap +msgid "`USE_WX_NOT`" +msgstr "`USE_WX_NOT`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3799 +#, no-wrap +msgid "List of versions the port cannot use" +msgstr "Список версий, которые порт не может использовать" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3800 +#, no-wrap +msgid "None" +msgstr "Ничего" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3803 +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:3805 +#, no-wrap +msgid "Available wxWidgets Versions" +msgstr "Доступные версии wxWidgets" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3809 +#, no-wrap +msgid "Version" +msgstr "Версия" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3811 +#, no-wrap +msgid "Port" +msgstr "Порт" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3812 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3830 +#, no-wrap +msgid "`2.8`" +msgstr "`2.8`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3814 +#, no-wrap +msgid "package:x11-toolkits/wxgtk28[]" +msgstr "package:x11-toolkits/wxgtk28[]" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3815 +#, no-wrap +msgid "`3.0`" +msgstr "`3.0`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3816 +#, no-wrap +msgid "package:x11-toolkits/wxgtk30[]" +msgstr "package:x11-toolkits/wxgtk30[]" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3819 +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:3821 +#, no-wrap +msgid "wxWidgets Version Specifications" +msgstr "Спецификации версий wxWidgets" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3827 +#, no-wrap +msgid "Example" +msgstr "Пример" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3828 +#, no-wrap +msgid "Single version" +msgstr "Единственная версия" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3831 +#, no-wrap +msgid "Ascending range" +msgstr "Возрастающий диапазон" + +#. type: Table +#: 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:3834 +#, no-wrap +msgid "Descending range" +msgstr "Нисходящий диапазон" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3836 +#, no-wrap +msgid "`3.0-`" +msgstr "`3.0-`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3837 +#, no-wrap +msgid "Full range (must be ascending)" +msgstr "Полный диапазон (должен быть возрастающим)" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3838 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3881 +#, no-wrap +msgid "`2.8-3.0`" +msgstr "`2.8-3.0`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3842 +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:3843 +#, no-wrap +msgid "Variables to Select Preferred wxWidgets Versions" +msgstr "Переменные для выбора предпочтительных версий wxWidgets" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3849 +#, no-wrap +msgid "Designed for" +msgstr "Предназначен для" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3850 +#, no-wrap +msgid "`WANT_WX_VER`" +msgstr "`WANT_WX_VER`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3852 +#, no-wrap +msgid "the port" +msgstr "порт" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3853 +#, no-wrap +msgid "`WITH_WX_VER`" +msgstr "`WITH_WX_VER`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3854 +#, no-wrap +msgid "the user" +msgstr "пользователь" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3861 +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:3863 +#, no-wrap +msgid "Available wxWidgets Components" +msgstr "Доступные компоненты wxWidgets" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3870 +#, no-wrap +msgid "Version restriction" +msgstr "Ограничение версии" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3871 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3914 +#, no-wrap +msgid "`wx`" +msgstr "`wx`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3872 +#, no-wrap +msgid "main library" +msgstr "основная библиотека" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3874 +#, no-wrap +msgid "none" +msgstr "none" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3875 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3917 +#, no-wrap +msgid "`contrib`" +msgstr "`contrib`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3876 +#, no-wrap +msgid "contributed libraries" +msgstr "сторонние библиотеки" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3878 +#, no-wrap +msgid "`none`" +msgstr "`none`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3879 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3920 +#, no-wrap +msgid "`python`" +msgstr "`python`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3880 +#, no-wrap +msgid "wxPython (Python bindings)" +msgstr "wxPython (интерфейс Python)" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3886 +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:3888 +#, no-wrap +msgid "Available wxWidgets Dependency Types" +msgstr "Доступные типы зависимостей wxWidgets" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3895 +#, no-wrap +msgid "`build`" +msgstr "`build`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3897 +#, 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:3898 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3922 +#, no-wrap +msgid "`run`" +msgstr "`run`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3900 +#, 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:3901 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3916 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3919 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3925 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3927 +#, no-wrap +msgid "`lib`" +msgstr "`lib`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3902 +#, 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:3905 +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:3907 +#, no-wrap +msgid "Default wxWidgets Dependency Types" +msgstr "Типы зависимостей wxWidgets по умолчанию" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3913 +#, no-wrap +msgid "Dependency type" +msgstr "Тип зависимости" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3923 +#, no-wrap +msgid "`mozilla`" +msgstr "`mozilla`" + +#. type: Block title +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3930 +#, no-wrap +msgid "Selecting wxWidgets Components" +msgstr "Выбор компонентов wxWidgets" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3934 +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:3939 +#, 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:3944 +#, no-wrap +msgid "Detecting Installed Versions" +msgstr "Обнаружение установленных версий" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3949 +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:3951 +#, no-wrap +msgid "Detecting Installed wxWidgets Versions and Components" +msgstr "Обнаружение установленных версий и компонентов wxWidgets" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3955 +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:3959 +#, 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:3961 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3977 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4030 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4620 +#, no-wrap +msgid ".include <bsd.port.pre.mk>\n" +msgstr ".include <bsd.port.pre.mk>\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3966 +#, 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:3969 +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:3975 +#, 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:3982 +#, 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:3987 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4157 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4392 +#, no-wrap +msgid "Defined Variables" +msgstr "Переменные, определенные в фреймворке" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3990 +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:3992 +#, no-wrap +msgid "Variables Defined for Ports That Use wxWidgets" +msgstr "Переменные, определенные для портов, использующих wxWidgets" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:3999 +#, no-wrap +msgid "`WX_CONFIG`" +msgstr "`WX_CONFIG`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4001 +#, 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:4002 +#, no-wrap +msgid "`WXRC_CMD`" +msgstr "`WXRC_CMD`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4004 +#, 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:4005 +#, no-wrap +msgid "`WX_VERSION`" +msgstr "`WX_VERSION`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4006 +#, 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:4009 +#, 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:4012 +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:4016 +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:4019 +#, no-wrap +msgid "Using wxWidgets Variables in Commands" +msgstr "Использование переменных wxWidgets в командах" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4023 +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:4028 +#, 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:4033 +#, 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:4036 +#, 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:4043 +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:4046 +#, no-wrap +msgid "Additional `configure` Arguments" +msgstr "Дополнительные параметры `configure`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4049 +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:4051 +#, no-wrap +msgid "Legal Values for `WX_CONF_ARGS`" +msgstr "Допустимые значения для `WX_CONF_ARGS`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4055 +#, no-wrap +msgid "Possible value" +msgstr "Возможное значение" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4057 +#, no-wrap +msgid "Resulting argument" +msgstr "Получаемый параметр" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4058 +#, no-wrap +msgid "`absolute`" +msgstr "`absolute`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4060 +#, 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:4061 +#, no-wrap +msgid "`relative`" +msgstr "`relative`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4062 +#, 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:4065 +#, no-wrap +msgid "Using Lua" +msgstr "Использование Lua" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4068 +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:4074 +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:4077 +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:4080 +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:4085 +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:4089 +#, no-wrap +msgid "USES=\tlua\n" +msgstr "USES=\tlua\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4094 +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:4098 +#, 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:4101 +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:4106 +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:4109 +#, no-wrap +msgid "Configuration and Compiler flags" +msgstr "Конфигурация и флаги компилятора" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4114 +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:4116 +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:4117 +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:4118 +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:4121 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4365 +#, no-wrap +msgid "Version Flavors" +msgstr "Флейворы версии" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4125 +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:4129 +#, no-wrap +msgid "USES=\tlua:module\n" +msgstr "USES=\tlua:module\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4132 +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:4134 +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:4138 +#, 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:4142 +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:4144 +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:4148 +#, no-wrap +msgid "USES=\tlua:flavors\n" +msgstr "USES=\tlua:flavors\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4152 +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:4155 +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:4160 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4395 +msgid "These variables are available in the port." +msgstr "В порте доступны эти переменные." + +#. type: Block title +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4162 +#, no-wrap +msgid "Variables Defined for Ports That Use Lua" +msgstr "Переменные, определенные для портов, использующих Lua" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4169 +#, no-wrap +msgid "`LUA_VER`" +msgstr "`LUA_VER`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4171 +#, 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:4172 +#, no-wrap +msgid "`LUA_VER_STR`" +msgstr "`LUA_VER_STR`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4174 +#, 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:4175 +#, no-wrap +msgid "`LUA_FLAVOR`" +msgstr "`LUA_FLAVOR`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4177 +#, 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:4178 +#, no-wrap +msgid "`LUA_BASE`" +msgstr "`LUA_BASE`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4180 +#, 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:4181 +#, no-wrap +msgid "`LUA_PREFIX`" +msgstr "`LUA_PREFIX`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4183 +#, 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:4184 +#, no-wrap +msgid "`LUA_INCDIR`" +msgstr "`LUA_INCDIR`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4186 +#, no-wrap +msgid "The directory where Lua header files are installed" +msgstr "Каталог, в котором установлены заголовочные файлы Lua" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4187 +#, no-wrap +msgid "`LUA_LIBDIR`" +msgstr "`LUA_LIBDIR`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4189 +#, no-wrap +msgid "The directory where Lua libraries are installed" +msgstr "Каталог, в котором установлены библиотеки Lua" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4190 +#, no-wrap +msgid "`LUA_REFMODLIBDIR`" +msgstr "`LUA_REFMODLIBDIR`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4192 +#, 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:4193 +#, no-wrap +msgid "`LUA_REFMODSHAREDIR`" +msgstr "`LUA_REFMODSHAREDIR`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4195 +#, 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:4196 +#, no-wrap +msgid "`LUA_MODLIBDIR`" +msgstr "`LUA_MODLIBDIR`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4198 +#, 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:4199 +#, no-wrap +msgid "`LUA_MODSHAREDIR`" +msgstr "`LUA_MODSHAREDIR`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4201 +#, 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:4202 +#, no-wrap +msgid "`LUA_PKGNAMEPREFIX`" +msgstr "`LUA_PKGNAMEPREFIX`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4204 +#, no-wrap +msgid "The package name prefix used by Lua modules" +msgstr "Префикс имени пакета, используемый модулями Lua" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4205 +#, no-wrap +msgid "`LUA_CMD`" +msgstr "`LUA_CMD`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4207 +#, 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:4208 +#, no-wrap +msgid "`LUAC_CMD`" +msgstr "`LUAC_CMD`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4209 +#, 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:4212 +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:4214 +#, no-wrap +msgid "Variables Defined for Lua Module Ports" +msgstr "Переменные, определенные для модулей Lua в портах" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4221 +#, no-wrap +msgid "`LUA_DOCSDIR`" +msgstr "`LUA_DOCSDIR`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4223 +#, 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:4224 +#, no-wrap +msgid "`LUA_EXAMPLESDIR`" +msgstr "`LUA_EXAMPLESDIR`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4225 +#, 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:4231 +#, 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:4236 +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:4242 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4503 +#, 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:4246 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4270 +#, 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:4248 +#, 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:4250 +#, no-wrap +msgid "USES=\t\tlua\n" +msgstr "USES=\t\tlua\n" + +#. type: Block title +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4257 +#, 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:4266 +#, 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:4272 +#, 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:4274 +#, 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:4281 +#, no-wrap +msgid "Using Guile" +msgstr "Использование Guile" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4284 +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:4293 +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:4299 +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:4304 +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:4306 +#, no-wrap +msgid "Arguments Defined for Ports That Use Guile" +msgstr "Параметры, определенные для портов, использующих Guile" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4313 +#, no-wrap +msgid "_X.Y_" +msgstr "_X.Y_" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4317 +#, 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:4318 +#, no-wrap +msgid "flavors" +msgstr "flavors" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4322 +#, 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:4323 +#, no-wrap +msgid "build" +msgstr "build" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4326 +#, 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:4327 +#, no-wrap +msgid "run" +msgstr "run" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4330 +#, 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:4331 +#, no-wrap +msgid "alias" +msgstr "alias" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4333 +#, 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:4334 +#, no-wrap +msgid "conflicts" +msgstr "conflicts" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4336 +#, 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:4339 +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:4342 +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:4344 +#, no-wrap +msgid "Configuration flags" +msgstr "Флаги конфигурации" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4349 +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:4351 +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:4353 +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:4354 +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:4355 +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:4356 +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:4359 +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:4363 +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:4370 +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:4372 +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:4376 +#, no-wrap +msgid "PKGNAMESUFFIX=\t-${FLAVOR}\n" +msgstr "PKGNAMESUFFIX=\t-${FLAVOR}\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4380 +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:4383 +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:4386 +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:4390 +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:4397 +#, no-wrap +msgid "Variables Defined for Ports That Use Guile" +msgstr "Переменные, определенные для портов, использующих Guile" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4402 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4464 +#, no-wrap +msgid "Sample Value" +msgstr "Пример значения" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4405 +#, no-wrap +msgid "`GUILE_VER`" +msgstr "`GUILE_VER`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4406 +#, no-wrap +msgid "3.0" +msgstr "3.0" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4408 +#, no-wrap +msgid "Guile version in use." +msgstr "Используемая версия Guile." + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4409 +#, no-wrap +msgid "`GUILE_SFX`" +msgstr "`GUILE_SFX`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4410 +#, no-wrap +msgid "3" +msgstr "3" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4413 +#, 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:4414 +#, no-wrap +msgid "`GUILE_FLAVOR`" +msgstr "`GUILE_FLAVOR`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4415 +#, no-wrap +msgid "guile30" +msgstr "guile30" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4417 +#, no-wrap +msgid "Flavor name corresponding to the selected version." +msgstr "Название флейвора, соответствующее выбранной версии." + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4418 +#, no-wrap +msgid "`GUILE_PORT`" +msgstr "`GUILE_PORT`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4419 +#, no-wrap +msgid "lang/guile3" +msgstr "lang/guile3" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4421 +#, no-wrap +msgid "Port origin of the specified Guile version." +msgstr "Расположение порта (origin) для указанной версии Guile." + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4422 +#, no-wrap +msgid "`GUILE_PREFIX`" +msgstr "`GUILE_PREFIX`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4423 +#, no-wrap +msgid "${PREFIX}" +msgstr "${PREFIX}" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4425 +#, no-wrap +msgid "Directory prefix to be used for installation." +msgstr "Префикс каталога для использования при установке." + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4426 +#, no-wrap +msgid "`GUILE_CMD`" +msgstr "`GUILE_CMD`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4427 +#, no-wrap +msgid "guile-3.0" +msgstr "guile-3.0" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4429 +#, no-wrap +msgid "Name of the Guile interpreter, with version suffix." +msgstr "Имя интерпретатора Guile с суффиксом версии." + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4430 +#, no-wrap +msgid "`GUILE_CMDPATH`" +msgstr "`GUILE_CMDPATH`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4431 +#, 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:4433 +#, no-wrap +msgid "Full path to the Guile interpreter." +msgstr "Полный путь к интерпретатору Guile." + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4434 +#, no-wrap +msgid "`GUILD_CMD`" +msgstr "`GUILD_CMD`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4435 +#, no-wrap +msgid "guild-3.0" +msgstr "guild-3.0" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4437 +#, no-wrap +msgid "Name of the Guild tool, with version suffix." +msgstr "Название инструмента Guild, с суффиксом версии." + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4438 +#, no-wrap +msgid "`GUILD_CMDPATH`" +msgstr "`GUILD_CMDPATH`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4439 +#, 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:4441 +#, no-wrap +msgid "Full path to the Guild tool." +msgstr "Полный путь к инструменту Guild." + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4443 +#, 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:4446 +#, 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:4447 +#, no-wrap +msgid "`GUILE_PKGCONFIG_PATH`" +msgstr "`GUILE_PKGCONFIG_PATH`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4448 +#, 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:4450 +#, 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:4451 +#, no-wrap +msgid "`GUILE_INFO_PATH`" +msgstr "`GUILE_INFO_PATH`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4452 +#, no-wrap +msgid "share/info/guile3" +msgstr "share/info/guile3" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4453 +#, 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:4457 +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:4459 +#, no-wrap +msgid "Path Substitutions Defined for Ports That Use Guile" +msgstr "Подстановки путей, определенные для портов, использующих Guile" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4467 +#, no-wrap +msgid "GUILE_GLOBAL_SITE" +msgstr "GUILE_GLOBAL_SITE" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4468 +#, no-wrap +msgid "share/guile/site" +msgstr "share/guile/site" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4470 +#, 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:4471 +#, no-wrap +msgid "GUILE_SITE" +msgstr "GUILE_SITE" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4472 +#, 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:4474 +#, no-wrap +msgid "Site directory for the selected Guile version." +msgstr "Каталог сайта для выбранной версии Guile." + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4475 +#, no-wrap +msgid "GUILE_SITE_CCACHE" +msgstr "GUILE_SITE_CCACHE" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4476 +#, 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:4478 +#, no-wrap +msgid "Directory for compiled bytecode files." +msgstr "Каталог для скомпилированных файлов байт-кода." + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4479 +#, no-wrap +msgid "GUILE_DOCS" +msgstr "GUILE_DOCS" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4480 +#, no-wrap +msgid "share/doc/guile30" +msgstr "share/doc/guile30" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4482 +#, no-wrap +msgid "Parent directory for version-specific documentation." +msgstr "Родительский каталог для документации, специфичной для версий." + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4483 +#, no-wrap +msgid "GUILE_EXAMPLES" +msgstr "GUILE_EXAMPLES" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4484 +#, no-wrap +msgid "share/examples/guile30" +msgstr "share/examples/guile30" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4485 +#, no-wrap +msgid "Parent directory for version-specific examples." +msgstr "Родительский каталог для примеров, специфичных для версий." + +#. type: Block title +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4491 +#, 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:4497 +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:4507 +#, 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:4510 +#, 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:4512 +#, 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:4519 +#, no-wrap +msgid "Using `iconv`" +msgstr "Использование `iconv`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4522 +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:4524 +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:4526 +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:4531 +#, no-wrap +msgid "Variable name" +msgstr "Имя переменной" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4532 +#, no-wrap +msgid "Purpose" +msgstr "Назначение" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4533 +#, 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:4536 +#, no-wrap +msgid "Base iconv" +msgstr "Базовый iconv" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4537 +#, no-wrap +msgid "`ICONV_CMD`" +msgstr "`ICONV_CMD`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4538 +#, no-wrap +msgid "Directory where the `iconv` binary resides" +msgstr "Каталог, в котором находится бинарный файл `iconv`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4539 +#, no-wrap +msgid "`${LOCALBASE}/bin/iconv`" +msgstr "`${LOCALBASE}/bin/iconv`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4541 +#, no-wrap +msgid "[.filename]#/usr/bin/iconv#" +msgstr "[.filename]#/usr/bin/iconv#" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4542 +#, no-wrap +msgid "`ICONV_LIB`" +msgstr "`ICONV_LIB`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4543 +#, 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:4544 +#, no-wrap +msgid "`-liconv`" +msgstr "`-liconv`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4546 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4556 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4560 +#, no-wrap +msgid "(empty)" +msgstr "(пусто)" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4547 +#, no-wrap +msgid "`ICONV_PREFIX`" +msgstr "`ICONV_PREFIX`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4548 +#, 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:4549 +#, no-wrap +msgid "`${LOCALBASE}`" +msgstr "`${LOCALBASE}`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4551 +#, no-wrap +msgid "[.filename]#/usr#" +msgstr "[.filename]#/usr#" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4552 +#, no-wrap +msgid "`ICONV_CONFIGURE_ARG`" +msgstr "`ICONV_CONFIGURE_ARG`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4553 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4558 +#, no-wrap +msgid "Preconstructed configure argument for configure scripts" +msgstr "Предварительно сконструированный аргумент configure для скриптов configure" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4554 +#, no-wrap +msgid "`--with-libiconv-prefix=${LOCALBASE}`" +msgstr "`--with-libiconv-prefix=${LOCALBASE}`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4557 +#, no-wrap +msgid "`ICONV_CONFIGURE_BASE`" +msgstr "`ICONV_CONFIGURE_BASE`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4559 +#, no-wrap +msgid "`--with-libiconv=${LOCALBASE}`" +msgstr "`--with-libiconv=${LOCALBASE}`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4563 +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:4565 +#, no-wrap +msgid "Simple `iconv` Usage" +msgstr "Простое использование `iconv`" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4572 +#, 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:4577 +#, no-wrap +msgid "`iconv` Usage with `configure`" +msgstr "Использование `iconv` с `configure`" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4584 +#, 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:4590 +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:4593 +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:4595 +#, no-wrap +msgid "Fixing Hardcoded `-liconv`" +msgstr "Исправление жестко заданного `-liconv`" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4601 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4618 +#, 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:4604 +#, 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:4610 +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:4612 +#, no-wrap +msgid "Checking for Native `iconv` Availability" +msgstr "Проверка доступности встроенной поддержки `iconv`" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4626 +#, 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:4628 +#, no-wrap +msgid ".include <bsd.port.post.mk>\n" +msgstr ".include <bsd.port.post.mk>\n" + +#. type: Title == +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4633 +#, no-wrap +msgid "Using Xfce" +msgstr "Использование Xfce" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4636 +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:4640 +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:4641 +#, no-wrap +msgid "Values of `USE_XFCE`" +msgstr "Значения `USE_XFCE`" + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4642 +#, no-wrap +msgid "garcon" +msgstr "garcon" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4644 +msgid "package:sysutils/garcon[]" +msgstr "package:sysutils/garcon[]" + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4645 +#, no-wrap +msgid "libexo" +msgstr "libexo" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4647 +msgid "package:x11/libexo[]" +msgstr "package:x11/libexo[]" + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4648 +#, no-wrap +msgid "libgui" +msgstr "libgui" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4650 +msgid "package:x11-toolkits/libxfce4gui[]" +msgstr "package:x11-toolkits/libxfce4gui[]" + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4651 +#, no-wrap +msgid "libmenu" +msgstr "libmenu" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4653 +msgid "package:x11/libxfce4menu[]" +msgstr "package:x11/libxfce4menu[]" + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4654 +#, no-wrap +msgid "libutil" +msgstr "libutil" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4656 +msgid "package:x11/libxfce4util[]" +msgstr "package:x11/libxfce4util[]" + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4657 +#, no-wrap +msgid "panel" +msgstr "panel" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4659 +msgid "package:x11-wm/xfce4-panel[]" +msgstr "package:x11-wm/xfce4-panel[]" + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4660 +#, no-wrap +msgid "thunar" +msgstr "thunar" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4662 +msgid "package:x11-fm/thunar[]" +msgstr "package:x11-fm/thunar[]" + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4663 +#, no-wrap +msgid "xfconf" +msgstr "xfconf" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4665 +msgid "package:x11/xfce4-conf[]" +msgstr "package:x11/xfce4-conf[]" + +#. type: Block title +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4667 +#, no-wrap +msgid "`USES=xfce` Example" +msgstr "Пример `USES=xfce`" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4674 +#, 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:4679 +#, no-wrap +msgid "Using Xfce's Own GTK2 Widgets" +msgstr "Использование собственных виджетов GTK2 в Xfce" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4683 +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:4688 +#, 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:4697 +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:4702 +#, 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:4705 +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:4710 +#, 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:4714 +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:4717 +#, no-wrap +msgid "Using Budgie" +msgstr "Использование Budgie" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4720 +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:4727 +#, no-wrap +msgid "`libbudgie`" +msgstr "`libbudgie`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4729 +#, no-wrap +msgid "Desktop core (library)" +msgstr "Ядро рабочего стола (библиотека)" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4730 +#, no-wrap +msgid "`libmagpie`" +msgstr "`libmagpie`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4732 +#, 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:4733 +#, no-wrap +msgid "`raven`" +msgstr "`raven`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4735 +#, 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:4736 +#, no-wrap +msgid "`screensaver`" +msgstr "`screensaver`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4738 +#, no-wrap +msgid "Desktop-specific screensaver" +msgstr "Рабочий стол: специальная заставка" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4743 +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:4745 +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:4750 +#, 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:4754 +#, no-wrap +msgid "`USE_BUDGIE` Example" +msgstr "Пример `USE_BUDGIE`" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4761 +#, 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:4765 +#, no-wrap +msgid "Using Databases" +msgstr "Использование баз данных" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4768 +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:4770 +#, no-wrap +msgid "Database `USES` Macros" +msgstr "Макросы `USES` для баз данных" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4774 +#, no-wrap +msgid "Database" +msgstr "База данных" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4776 +#, no-wrap +msgid "USES Macro" +msgstr "Макрос USES" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4777 +#, no-wrap +msgid "Berkeley DB" +msgstr "Berkeley DB" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4779 +#, 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:4780 +#, no-wrap +msgid "MariaDB, MySQL, Percona" +msgstr "MariaDB, MySQL, Percona" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4782 +#, 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:4783 +#, no-wrap +msgid "PostgreSQL" +msgstr "PostgreSQL" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4785 +#, 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:4786 +#, no-wrap +msgid "SQLite" +msgstr "SQLite" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4787 +#, 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:4790 +#, no-wrap +msgid "Using Berkeley DB 6" +msgstr "Использование Berkeley DB 6" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4796 +#, no-wrap +msgid "USES=\tbdb:6\n" +msgstr "USES=\tbdb:6\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4799 +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:4802 +#, no-wrap +msgid "Using MySQL" +msgstr "Использование MySQL" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4806 +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:4810 +#, no-wrap +msgid "USES=\tmysql\n" +msgstr "USES=\tmysql\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4813 +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:4816 +#, no-wrap +msgid "Using PostgreSQL" +msgstr "Использование PostgreSQL" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4820 +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:4825 +#, 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:4828 +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:4831 +#, no-wrap +msgid "Using SQLite 3" +msgstr "Использование SQLite 3" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4837 +#, no-wrap +msgid "USES=\tsqlite:3\n" +msgstr "USES=\tsqlite:3\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4840 +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:4843 +#, no-wrap +msgid "Starting and Stopping Services (`rc` Scripts)" +msgstr "Запуск и остановка служб (скрипты `rc`)" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4850 +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}[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}" +"[соответствующей главе Handbook, 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:4853 +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:4857 +#, 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:4864 +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:4866 +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:4868 +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:4872 +#, no-wrap +msgid "#!/bin/sh\n" +msgstr "#!/bin/sh\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4884 +#, 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:4886 +#, 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:4889 +#, 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:4891 +#, 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:4894 +#, 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:4897 +#, 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:4899 +#, 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:4901 +#, 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:4904 +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:4908 +#, no-wrap +msgid "REQUIRE: LOGIN\n" +msgstr "REQUIRE: LOGIN\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4911 +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:4915 +#, no-wrap +msgid "KEYWORD: shutdown\n" +msgstr "KEYWORD: shutdown\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4918 +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:4921 +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:4925 +#, no-wrap +msgid "doormand_flags=\"\"\n" +msgstr "doormand_flags=\"\"\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4929 +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:4934 +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:4937 +#, no-wrap +msgid "Pre-Commit Checklist" +msgstr "Pre-Commit Checklist" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4940 +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:4942 +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:4945 +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:4946 +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:4947 +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:4948 +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:4949 +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:4950 +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:4954 +#, no-wrap +msgid "# service name stop\n" +msgstr "# service name stop\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4957 +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:4958 +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:4959 +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:4960 +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:4961 +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:4962 +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:4963 +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:4964 +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:4965 +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:4966 +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:4967 +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:4969 +#, no-wrap +msgid "Adding Users and Groups" +msgstr "Добавление пользователей и групп" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4974 +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:4976 +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:4978 +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:4983 +#, 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:4986 +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:4988 +#, no-wrap +msgid "Ports That Rely on Kernel Sources" +msgstr "Порты, зависящие от исходных кодов ядра" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4992 +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:4996 +#, no-wrap +msgid "USES=\tkmod\n" +msgstr "USES=\tkmod\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:4999 +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:5001 +#, no-wrap +msgid "Go Libraries" +msgstr "Библиотеки Go" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:5005 +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:5007 +msgid "Ports should (in order of preference):" +msgstr "Порты должны (в порядке предпочтения):" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:5009 +msgid "Use vendored dependencies included with the package source." +msgstr "Использовать зависимости, включенные в исходный код пакета." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:5010 +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:5011 +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:5013 +#, no-wrap +msgid "Haskell Libraries" +msgstr "Библиотеки Haskell" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:5017 +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:5019 +#, no-wrap +msgid "Shell Completion Files" +msgstr "Файлы завершения командной оболочки" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/special/_index.adoc:5024 +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:5028 +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:5030 +#, no-wrap +msgid "Full shell completion file names" +msgstr "Полные имена файлов завершения оболочки" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:5034 +#, no-wrap +msgid "`bash`" +msgstr "`bash`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:5035 +#, 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:5037 +#, no-wrap +msgid "(any unique file names in one of these folders)" +msgstr "(любые уникальные имена файлов в одной из этих папок)" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:5038 +#, no-wrap +msgid "`fish`" +msgstr "`fish`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:5039 +#, 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:5042 +#, no-wrap +msgid "`zsh`" +msgstr "`zsh`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/special/_index.adoc:5043 +#, 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:5046 +msgid "Do not register any dependencies on the shells themselves." +msgstr "Не регистрируйте зависимости от самих оболочек." |