diff options
Diffstat (limited to 'documentation/content/ru/books/porters-handbook/makefiles/_index.po')
-rw-r--r-- | documentation/content/ru/books/porters-handbook/makefiles/_index.po | 14066 |
1 files changed, 14066 insertions, 0 deletions
diff --git a/documentation/content/ru/books/porters-handbook/makefiles/_index.po b/documentation/content/ru/books/porters-handbook/makefiles/_index.po new file mode 100644 index 0000000000..359d99d977 --- /dev/null +++ b/documentation/content/ru/books/porters-handbook/makefiles/_index.po @@ -0,0 +1,14066 @@ +# 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-09-05 04:45+0000\n" +"Last-Translator: Vladlen Popolitov <vladlenpopolitov@list.ru>\n" +"Language-Team: Russian <https://translate-dev.freebsd.org/projects/" +"documentation/booksporters-handbookmakefiles_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/makefiles/_index.adoc:1 +#, no-wrap +msgid "Configuring the Makefile for FreeBSD Ports" +msgstr "Настройка Makefile для портов FreeBSD" + +#. type: Yaml Front Matter Hash Value: title +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1 +#, no-wrap +msgid "Chapter 5. Configuring the Makefile" +msgstr "Глава 5. Настройка Makefile" + +#. type: Title = +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:14 +#, no-wrap +msgid "Configuring the Makefile" +msgstr "Настройка Makefile" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:55 +msgid "" +"Configuring the [.filename]#Makefile# is pretty simple, and again we suggest " +"looking at existing examples before starting. Also, there is a " +"crossref:porting-samplem[porting-samplem,sample Makefile] in this handbook, " +"so take a look and please follow the ordering of variables and sections in " +"that template to make the port easier for others to read." +msgstr "" +"Настройка [.filename]#Makefile# довольно проста, и мы снова рекомендуем " +"изучить существующие примеры перед началом. Также в этом руководстве есть " +"crossref:porting-samplem[porting-samplem,пример Makefile], поэтому " +"ознакомьтесь с ним и, пожалуйста, соблюдайте порядок переменных и разделов в " +"этом шаблоне, чтобы порт был удобнее для чтения другими." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:57 +msgid "" +"Consider these problems in sequence during the design of the new " +"[.filename]#Makefile#:" +msgstr "" +"Рассмотрите эти проблемы последовательно при разработке нового " +"[.filename]#Makefile#:" + +#. type: Title == +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:59 +#, no-wrap +msgid "The Original Source" +msgstr "Оригинальный исходный код" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:63 +msgid "" +"Does it live in `DISTDIR` as a standard ``gzip``ped tarball named something " +"like [.filename]#foozolix-1.2.tar.gz#? If so, go on to the next step. If " +"not, the distribution file format might require overriding one or more of " +"`DISTVERSION`, `DISTNAME`, `EXTRACT_CMD`, `EXTRACT_BEFORE_ARGS`, " +"`EXTRACT_AFTER_ARGS`, `EXTRACT_SUFX`, or `DISTFILES`." +msgstr "" +"Находится ли он в `DISTDIR` в виде стандартного архива ``gzip`` с именем " +"вроде [.filename]#foozolix-1.2.tar.gz#? Если да, переходите к следующему " +"шагу. Если нет, возможно, для формата имени файла дистрибутива потребуется " +"переопределить одну или несколько переменных: `DISTVERSION`, `DISTNAME`, " +"`EXTRACT_CMD`, `EXTRACT_BEFORE_ARGS`, `EXTRACT_AFTER_ARGS`, `EXTRACT_SUFX` " +"или `DISTFILES`." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:66 +msgid "" +"In the worst case, create a custom `do-extract` target to override the " +"default. This is rarely, if ever, necessary." +msgstr "" +"В худшем случае создайте пользовательскую цель `do-extract`, чтобы " +"переопределить стандартную. Это редко, если вообще когда-либо, необходимо." + +#. type: Title == +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:68 +#, no-wrap +msgid "Naming" +msgstr "Именование" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:71 +msgid "" +"The first part of the port's [.filename]#Makefile# names the port, describes " +"its version number, and lists it in the correct category." +msgstr "" +"Первая часть [.filename]#Makefile# порта указывает его название, описывает " +"номер версии и помещает его в соответствующую категорию." + +#. type: Title === +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:73 +#, no-wrap +msgid "`PORTNAME`" +msgstr "`PORTNAME`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:77 +msgid "" +"Set `PORTNAME` to the base name of the software. It is used as the base for " +"the FreeBSD package, and for crossref:makefiles[makefile-" +"distname,`DISTNAME`]." +msgstr "" +"Установите `PORTNAME` как базовое имя программы. Оно используется в качестве " +"основы для пакета FreeBSD и для crossref:makefiles[makefile-" +"distname,`DISTNAME`]." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:84 +msgid "" +"The package name must be unique across the entire ports tree. Make sure " +"that the `PORTNAME` is not already in use by an existing port, and that no " +"other port already has the same `PKGBASE`. If the name has already been " +"used, add either crossref:makefiles[porting-pkgnameprefix-" +"suffix,`PKGNAMEPREFIX` or `PKGNAMESUFFIX`]." +msgstr "" +"Название пакета должно быть уникальным во всём дереве портов. Убедитесь, что " +"`PORTNAME` ещё не используется существующим портом и что никакой другой порт " +"уже не имеет такой же `PKGBASE`. Если имя уже занято, добавьте либо " +"crossref:makefiles[porting-pkgnameprefix-suffix,`PKGNAMEPREFIX`, либо " +"`PKGNAMESUFFIX`]." + +#. type: Title === +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:87 +#, no-wrap +msgid "Versions, `DISTVERSION` _or_ `PORTVERSION`" +msgstr "Версии, `DISTVERSION` _или_ `PORTVERSION`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:90 +msgid "Set `DISTVERSION` to the version number of the software." +msgstr "Установите `DISTVERSION` в номер версии программы." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:94 +msgid "" +"`PORTVERSION` is the version used for the FreeBSD package. It will be " +"automatically derived from `DISTVERSION` to be compatible with FreeBSD's " +"package versioning scheme. If the version contains _letters_, it might be " +"needed to set `PORTVERSION` and not `DISTVERSION`." +msgstr "" +"`PORTVERSION` — это версия, используемая для пакета FreeBSD. Она будет " +"автоматически вычислена из `DISTVERSION` в соответствии со схемой " +"версионирования пакетов FreeBSD. Если версия содержит _буквы_, может " +"потребоваться задать `PORTVERSION` вместо `DISTVERSION`." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:98 +msgid "Only one of `PORTVERSION` and `DISTVERSION` can be set at a time." +msgstr "" +"Только одна из переменных `PORTVERSION` и `DISTVERSION` может быть " +"установлена одновременно." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:101 +msgid "" +"From time to time, some software will use a version scheme that is not " +"compatible with how `DISTVERSION` translates in `PORTVERSION`." +msgstr "" +"Время от времени некоторые программы используют схему версионирования, " +"которая несовместима с тем, как `DISTVERSION` преобразуется в `PORTVERSION`." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:106 +msgid "" +"When updating a port, it is possible to use the `-t` argument of man:pkg-" +"version[8] to check if the new version is greater or lesser than before. " +"See below on how to use man:pkg-version[8] to compare versions." +msgstr "" +"При обновлении порта можно использовать аргумент `-t` утилиты man:pkg-" +"version[8], чтобы проверить, является ли новая версия больше или меньше " +"предыдущей. Смотрите ниже, как использовать man:pkg-version[8] для сравнения " +"версий." + +#. type: Block title +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:109 +#, no-wrap +msgid "Using man:pkg-version[8] to Compare Versions" +msgstr "Использование man:pkg-version[8] для сравнения версий" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:113 +msgid "" +"`pkg version -t` takes two versions as arguments, it will respond with `<`, " +"`=` or `>` if the first version is less, equal, or more than the second " +"version, respectively." +msgstr "" +"`pkg version -t` принимает две версии в качестве аргументов и возвращает " +"`<`, `=` или `>`, если первая версия меньше, равна или больше второй версии " +"соответственно." + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:119 +#, no-wrap +msgid "" +"% pkg version -t 1.2 1.3\n" +"< <.>\n" +"% pkg version -t 1.2 1.2\n" +msgstr "" +"% pkg version -t 1.2 1.3\n" +"< <.>\n" +"% pkg version -t 1.2 1.2\n" + +#. type: Title = +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:119 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:121 +#, no-wrap +msgid "<.>" +msgstr "<.>" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:121 +msgid "% pkg version -t 1.2 1.2.0" +msgstr "% pkg version -t 1.2 1.2.0" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:128 +msgid "" +"% pkg version -t 1.2 1.2.p1 > <.> % pkg version -t 1.2.a1 1.2.b1 < <.> % pkg " +"version -t 1.2 1.2p1 < <.>" +msgstr "" +"% pkg version -t 1.2 1.2.p1\n" +"> <.>\n" +"% pkg version -t 1.2.a1 1.2.b1\n" +"< <.>\n" +"% pkg version -t 1.2 1.2p1\n" +"< <.>" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:131 +msgid "`1.2` is before `1.3`." +msgstr "`1.2` идёт перед `1.3`." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:132 +msgid "`1.2` and `1.2` are equal as they have the same version." +msgstr "`1.2` и `1.2` равны, так как имеют одинаковую версию." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:133 +msgid "`1.2` and `1.2.0` are equal as nothing equals zero." +msgstr "`1.2` и `1.2.0` равны, так как ноль ничего не значит." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:134 +msgid "`1.2` is after `1.2.p1` as `.p1`, think \"pre-release 1\"." +msgstr "" +"`1.2` идёт после `1.2.p1`, так как `.p1` означает «pre-release 1» " +"(предрелизная версия 1)." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:135 +msgid "" +"`1.2.a1` is before `1.2.b1`, think \"alpha\" and \"beta\", and `a` is before " +"`b`." +msgstr "" +"`1.2.a1` предшествует `1.2.b1`, представьте \"alpha\" и \"beta\", где `a` " +"идёт перед `b`." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:136 +msgid "" +"`1.2` is before `1.2p1` as `2p1`, think \"2, patch level 1\" which is a " +"version after any `2.X` but before `3`." +msgstr "" +"`1.2` находится перед `1.2p1`, так же как `2p1` (читается как \"2, уровень " +"исправления 1\") — это версия, следующая после любой `2.X`, но перед `3`." + +#. type: delimited block * 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:141 +msgid "" +"In here, the `a`, `b`, and `p` are used as if meaning \"alpha\", \"beta\" or " +"\"pre-release\" and \"patch level\", but they are only letters and are " +"sorted alphabetically, so any letter can be used, and they will be sorted " +"appropriately." +msgstr "" +"Здесь `a`, `b` и `p` используются так, как если бы они означали \"альфа\", " +"\"бета\" или \"пре-релиз\" и \"уровень патча\", но на самом деле это просто " +"буквы, которые сортируются в алфавитном порядке, поэтому можно использовать " +"любую букву, и они будут отсортированы соответствующим образом." + +#. type: Block title +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:145 +#, no-wrap +msgid "Examples of `DISTVERSION` and the Derived `PORTVERSION`" +msgstr "Примеры `DISTVERSION` и производной `PORTVERSION`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:149 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:499 +#, no-wrap +msgid "DISTVERSION" +msgstr "DISTVERSION" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:151 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:500 +#, no-wrap +msgid "PORTVERSION" +msgstr ".PORTVERSION" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:152 +#, no-wrap +msgid "0.7.1d" +msgstr "0.7.1d" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:154 +#, no-wrap +msgid "0.7.1.d" +msgstr "0.7.1.d" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:155 +#, no-wrap +msgid "10Alpha3" +msgstr "10Alpha3" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:157 +#, no-wrap +msgid "10.a3" +msgstr "10.a3" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:158 +#, no-wrap +msgid "3Beta7-pre2" +msgstr "3Beta7-pre2" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:160 +#, no-wrap +msgid "3.b7.p2" +msgstr "3.b7.p2" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:161 +#, no-wrap +msgid "8:f_17" +msgstr "8:f_17" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:162 +#, no-wrap +msgid "8f.17" +msgstr "8f.17" + +#. type: Block title +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:165 +#, no-wrap +msgid "Using `DISTVERSION`" +msgstr "Использование `DISTVERSION`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:169 +msgid "" +"When the version only contains numbers separated by dots, dashes or " +"underscores, use `DISTVERSION`." +msgstr "" +"Если версия содержит только числа, разделённые точками, тире или " +"подчёркиваниями, используйте `DISTVERSION`." + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:174 +#, no-wrap +msgid "" +"PORTNAME= nekoto\n" +"DISTVERSION=\t1.2-4\n" +msgstr "" +"PORTNAME= nekoto\n" +"DISTVERSION=\t1.2-4\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:177 +msgid "It will generate a `PORTVERSION` of `1.2.4`." +msgstr "Это сгенерирует `PORTVERSION` равный `1.2.4`." + +#. type: Block title +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:180 +#, no-wrap +msgid "Using `DISTVERSION` When the Version Starts with a Letter or a Prefix" +msgstr "Использование `DISTVERSION` когда версия начинается с буквы или префикса" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:184 +msgid "" +"When the version starts or ends with a letter, or a prefix or a suffix that " +"is not part of the version, use `DISTVERSIONPREFIX`, `DISTVERSION`, and " +"`DISTVERSIONSUFFIX`." +msgstr "" +"Когда версия начинается или заканчивается буквой, или префиксом, или " +"суффиксом, которые не являются частью версии, используйте " +"`DISTVERSIONPREFIX`, `DISTVERSION` и `DISTVERSIONSUFFIX`." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:186 +msgid "If the version is `v1.2-4`:" +msgstr "Если версия `v1.2-4`:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:192 +#, no-wrap +msgid "" +"PORTNAME= nekoto\n" +"DISTVERSIONPREFIX= v\n" +"DISTVERSION=\t1_2_4\n" +msgstr "" +"PORTNAME= nekoto\n" +"DISTVERSIONPREFIX= v\n" +"DISTVERSION=\t1_2_4\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:196 +msgid "" +"Some of the time, projects using GitHub will use their name in their " +"versions. For example, the version could be `nekoto-1.2-4`:" +msgstr "" +"Некоторые проекты, использующие GitHub, могут включать своё название в " +"версии. Например, версия может выглядеть как `nekoto-1.2-4`:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:202 +#, no-wrap +msgid "" +"PORTNAME= nekoto\n" +"DISTVERSIONPREFIX= nekoto-\n" +"DISTVERSION=\t1.2_4\n" +msgstr "" +"PORTNAME= nekoto\n" +"DISTVERSIONPREFIX= nekoto-\n" +"DISTVERSION=\t1.2_4\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:205 +msgid "" +"Those projects also sometimes use some string at the end of the version, for " +"example, `1.2-4_RELEASE`:" +msgstr "" +"Эти проекты также иногда используют строку в конце версии, например, " +"`1.2-4_RELEASE`:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:211 +#, no-wrap +msgid "" +"PORTNAME= nekoto\n" +"DISTVERSION=\t1.2-4\n" +"DISTVERSIONSUFFIX= _RELEASE\n" +msgstr "" +"PORTNAME= nekoto\n" +"DISTVERSION=\t1.2-4\n" +"DISTVERSIONSUFFIX= _RELEASE\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:214 +msgid "Or they do both, for example, `nekoto-1.2-4_RELEASE`:" +msgstr "Или они делают и то, и другое, например, `nekoto-1.2-4_RELEASE`:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:221 +#, no-wrap +msgid "" +"PORTNAME= nekoto\n" +"DISTVERSIONPREFIX= nekoto-\n" +"DISTVERSION=\t1.2-4\n" +"DISTVERSIONSUFFIX= _RELEASE\n" +msgstr "" +"PORTNAME= nekoto\n" +"DISTVERSIONPREFIX= nekoto-\n" +"DISTVERSION=\t1.2-4\n" +"DISTVERSIONSUFFIX= _RELEASE\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:224 +msgid "" +"`DISTVERSIONPREFIX` and `DISTVERSIONSUFFIX` will not be used while " +"constructing `PORTVERSION`, but only used in `DISTNAME`." +msgstr "" +"`DISTVERSIONPREFIX` и `DISTVERSIONSUFFIX` не будут использоваться при " +"формировании `PORTVERSION`, а только в `DISTNAME`." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:226 +msgid "All will generate a `PORTVERSION` of `1.2.4`." +msgstr "Все сгенерируют `PORTVERSION` равный `1.2.4`." + +#. type: Block title +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:229 +#, no-wrap +msgid "Using `DISTVERSION` When the Version Contains Letters Meaning \"alpha\", \"beta\", or \"pre-release\"" +msgstr "Использование `DISTVERSION`, когда версия содержит буквы, означающие \"alpha\", \"beta\" или \"pre-release\"" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:233 +msgid "" +"When the version contains numbers separated by dots, dashes or underscores, " +"and letters are used to mean \"alpha\", \"beta\" or \"pre-release\", which " +"is, before the version without the letters, use `DISTVERSION`." +msgstr "" +"Если версия содержит числа, разделённые точками, тире или подчёркиваниями, а " +"буквы используются для обозначения \"альфа\", \"бета\" или \"предварительной " +"версии\" (то есть до версии без букв), используйте `DISTVERSION`." + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:238 +#, no-wrap +msgid "" +"PORTNAME= nekoto\n" +"DISTVERSION=\t1.2-pre4\n" +msgstr "" +"PORTNAME= nekoto\n" +"DISTVERSION=\t1.2-pre4\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:244 +#, no-wrap +msgid "" +"PORTNAME= nekoto\n" +"DISTVERSION=\t1.2p4\n" +msgstr "" +"PORTNAME= nekoto\n" +"DISTVERSION=\t1.2p4\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:247 +msgid "" +"Both will generate a `PORTVERSION` of `1.2.p4` which is before than 1.2. " +"man:pkg-version[8] can be used to check that fact:" +msgstr "" +"Оба варианта создадут `PORTVERSION` равную `1.2.p4`, что предшествует версии " +"1.2. Для проверки этого факта можно использовать man:pkg-version[8]:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:252 +#, no-wrap +msgid "" +"% pkg version -t 1.2.p4 1.2\n" +"<\n" +msgstr "" +"% pkg version -t 1.2.p4 1.2\n" +"<\n" + +#. type: Block title +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:257 +#, no-wrap +msgid "Not Using `DISTVERSION` When the Version Contains Letters Meaning \"Patch Level\"" +msgstr "Не использовать `DISTVERSION`, если версия содержит буквы, означающие \"уровень патча\"" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:261 +msgid "" +"When the version contains letters that are not meant as \"alpha\", \"beta\", " +"or \"pre\", but more in a \"patch level\", and meaning after the version " +"without the letters, use `PORTVERSION`." +msgstr "" +"Если версия содержит буквы, которые не означают \"alpha\", \"beta\" или " +"\"pre\", а скорее указывают на \"уровень исправления\" и следуют после " +"версии без букв, используйте `PORTVERSION`." + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:266 +#, no-wrap +msgid "" +"PORTNAME= nekoto\n" +"PORTVERSION=\t1.2p4\n" +msgstr "" +"PORTNAME= nekoto\n" +"PORTVERSION=\t1.2p4\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:270 +msgid "" +"In this case, using `DISTVERSION` is not possible because it would generate " +"a version of `1.2.p4` which would be before `1.2` and not after. man:pkg-" +"version[8] will verify this:" +msgstr "" +"В данном случае использование `DISTVERSION` невозможно, так как это приведёт " +"к генерации версии `1.2.p4`, которая будет считаться более ранней, чем " +"`1.2`, а не более поздней. man:pkg-version[8] подтвердит это:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:277 +#, no-wrap +msgid "" +"% pkg version -t 1.2 1.2.p4\n" +"> <.>\n" +"% pkg version -t 1.2 1.2p4\n" +"< <.>\n" +msgstr "" +"% pkg version -t 1.2 1.2.p4\n" +"> <.>\n" +"% pkg version -t 1.2 1.2p4\n" +"< <.>\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:280 +msgid "`1.2` is after `1.2.p4`, which is _wrong_ in this case." +msgstr "`1.2` идёт после `1.2.p4`, что в данном случае _неверно_." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:281 +msgid "`1.2` is before `1.2p4`, which is what was needed." +msgstr "`1.2` находится перед `1.2p4`, что и требовалось." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:287 +msgid "" +"For some more advanced examples of setting `PORTVERSION`, when the " +"software's versioning is really not compatible with FreeBSD's, or `DISTNAME` " +"when the distribution file does not contain the version itself, see " +"crossref:makefiles[makefile-distname, `DISTNAME`]." +msgstr "" +"Для более сложных примеров настройки `PORTVERSION`, когда версия " +"программного обеспечения действительно несовместима с FreeBSD, или " +"`DISTNAME`, когда файл дистрибутива не содержит саму версию, см. " +"crossref:makefiles[makefile-distname, `DISTNAME`]." + +#. type: Title === +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:289 +#, no-wrap +msgid "`PORTREVISION` and `PORTEPOCH`" +msgstr "`PORTREVISION` и `PORTEPOCH`" + +#. type: Title ==== +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:292 +#, no-wrap +msgid "`PORTREVISION`" +msgstr "`PORTREVISION`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:296 +msgid "" +"`PORTREVISION` is a monotonically increasing value which is reset to 0 with " +"every increase of `DISTVERSION`, typically every time there is a new " +"official vendor release. If `PORTREVISION` is non-zero, the value is " +"appended to the package name. Changes to `PORTREVISION` are used by " +"automated tools like man:pkg-version[8] to determine that a new package is " +"available." +msgstr "" +"`PORTREVISION` — это монотонно возрастающее значение, которое сбрасывается в " +"0 при каждом увеличении `DISTVERSION`, обычно при каждом новом официальном " +"выпуске от поставщика. Если `PORTREVISION` не равен нулю, его значение " +"добавляется к имени пакета. Изменения `PORTREVISION` используются " +"автоматизированными инструментами, такими как man:pkg-version[8], для " +"определения доступности нового пакета." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:300 +msgid "" +"`PORTREVISION` must be increased each time a change is made to the port that " +"changes the generated package in any way. That includes changes that only " +"affect a package built with non-default crossref:makefiles[makefile-" +"options,options]." +msgstr "" +"`PORTREVISION` должен быть увеличен каждый раз, когда в порт вносятся " +"изменения, которые так или иначе влияют на сгенерированный пакет. Это " +"включает изменения, затрагивающие только пакеты, собранные с нестандартными " +"crossref:makefiles[makefile-options,опциями]." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:302 +msgid "Examples of when `PORTREVISION` must be bumped:" +msgstr "Примеры случаев, когда необходимо увеличить `PORTREVISION`:" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:304 +msgid "" +"Addition of patches to correct security vulnerabilities, bugs, or to add new " +"functionality to the port." +msgstr "" +"Добавление исправлений для устранения уязвимостей безопасности, ошибок или " +"для добавления новой функциональности в порт." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:305 +msgid "" +"Changes to the port [.filename]#Makefile# to enable or disable compile-time " +"options in the package." +msgstr "" +"Изменения в [.filename]#Makefile# порта для включения или отключения " +"параметров сборки в пакете." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:306 +msgid "" +"Changes in the packing list or the install-time behavior of the package. For " +"example, a change to a script which generates initial data for the package, " +"like man:ssh[1] host keys." +msgstr "" +"Изменения в списке файлов пакета или в поведении во время установки. " +"Например, изменение скрипта, который генерирует начальные данные для пакета, " +"такие как ключи хоста man:ssh[1]." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:307 +msgid "" +"Version bump of a port's shared library dependency (in this case, someone " +"trying to install the old package after installing a newer version of the " +"dependency will fail since it will look for the old libfoo.x instead of " +"libfoo.(x+1))." +msgstr "" +"Увеличение версии зависимости порта от общей библиотеки (в данном случае, " +"попытка установить старый пакет после установки более новой версии " +"зависимости завершится неудачей, так как будет искаться старая версия " +"libfoo.x вместо libfoo.(x+1))." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:308 +msgid "" +"Silent changes to the port distfile which have significant functional " +"differences. For example, changes to the distfile requiring a correction to " +"[.filename]#distinfo# with no corresponding change to `DISTVERSION`, where a " +"`diff -ru` of the old and new versions shows non-trivial changes to the code." +msgstr "" +"Тихие изменения в дистрибутивном файле порта, которые имеют значительные " +"функциональные отличия. Например, изменения в дистрибутивном файле, " +"требующие корректировки файла [.filename]#distinfo# без соответствующего " +"изменения `DISTVERSION`, когда сравнение `diff -ru` старой и новой версий " +"показывает нетривиальные изменения в коде." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:309 +msgid "Changes to `MAINTAINER`." +msgstr "Изменения в `MAINTAINER`." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:311 +msgid "Examples of changes which do not require a `PORTREVISION` bump:" +msgstr "Примеры изменений, которые не требуют увеличения `PORTREVISION`:" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:313 +msgid "" +"Style changes to the port skeleton with no functional change to what appears " +"in the resulting package." +msgstr "" +"Стилевые изменения в каркасе портов без функциональных изменений в итоговом " +"пакете." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:314 +msgid "" +"Changes to `MASTER_SITES` or other functional changes to the port which do " +"not affect the resulting package." +msgstr "" +"Изменения в `MASTER_SITES` или другие функциональные изменения порта, " +"которые не влияют на итоговый пакет." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:315 +msgid "" +"Trivial patches to the distfile such as correction of typos, which are not " +"important enough that users of the package have to go to the trouble of " +"upgrading." +msgstr "" +"Тривиальные исправления в дистрибутивном файле, такие как исправление " +"опечаток, которые не настолько важны, чтобы пользователи пакета были " +"вынуждены тратить время на обновление." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:316 +msgid "" +"Build fixes which cause a package to become compilable where it was " +"previously failing. As long as the changes do not introduce any functional " +"change on any other platforms on which the port did previously build. Since " +"`PORTREVISION` reflects the content of the package, if the package was not " +"previously buildable then there is no need to increase `PORTREVISION` to " +"mark a change." +msgstr "" +"Исправления сборки, которые позволяют пакету компилироваться там, где ранее " +"это не удавалось. При условии, что изменения не вносят функциональных " +"изменений на других платформах, где порт ранее собирался. Поскольку " +"`PORTREVISION` отражает содержимое пакета, если пакет ранее не мог быть " +"собран, то нет необходимости увеличивать `PORTREVISION` для обозначения " +"изменений." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:321 +msgid "" +"A rule of thumb is to decide whether a change committed to a port is " +"something which _some_ people would benefit from having. Either because of " +"an enhancement, fix, or by virtue that the new package will actually work at " +"all. Then weigh that against that fact that it will cause everyone who " +"regularly updates their ports tree to be compelled to update. If yes, " +"`PORTREVISION` must be bumped." +msgstr "" +"Эмпирическое правило заключается в том, чтобы решить, является ли изменение, " +"внесённое в порт, чем-то, что принесёт пользу _некоторым_ пользователям. " +"Будь то улучшение, исправление или просто факт, что новый пакет вообще будет " +"работать. Затем необходимо сопоставить это с тем, что всем, кто регулярно " +"обновляет своё дерево портов, придётся выполнить обновление. Если ответ " +"положительный, необходимо увеличить `PORTREVISION`." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:326 +msgid "" +"People using binary packages will _never_ see the update if `PORTREVISION` " +"is not bumped. Without increasing `PORTREVISION`, the package builders have " +"no way to detect the change and thus, will not rebuild the package." +msgstr "" +"Пользователи бинарных пакетов _никогда_ не увидят обновления, если " +"`PORTREVISION` не увеличен. Без увеличения `PORTREVISION` сборщики пакетов " +"не могут обнаружить изменение и, следовательно, не пересоберут пакет." + +#. type: Title ==== +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:329 +#, no-wrap +msgid "`PORTEPOCH`" +msgstr "`PORTEPOCH`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:333 +msgid "" +"From time to time a software vendor or FreeBSD porter will do something " +"silly and release a version of their software which is actually numerically " +"less than the previous version. An example of this is a port which goes " +"from foo-20000801 to foo-1.0 (the former will be incorrectly treated as a " +"newer version since 20000801 is a numerically greater value than 1)." +msgstr "" +"Время от времени разработчики программного обеспечения или сопровождающие " +"портов FreeBSD совершают ошибку и выпускают версию своего ПО, которая " +"фактически имеет меньший номер по сравнению с предыдущей. Примером может " +"служить переход с foo-20000801 на foo-1.0 (первая версия будет ошибочно " +"считаться более новой, поскольку число 20000801 больше, чем 1.0)." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:339 +msgid "" +"The results of version number comparisons are not always obvious. `pkg " +"version` (see man:pkg-version[8]) can be used to test the comparison of two " +"version number strings. For example:" +msgstr "" +"Результаты сравнения номеров версий не всегда очевидны. Команда `pkg " +"version` (см. man:pkg-version[8]) может быть использована для проверки " +"сравнения двух строк с номерами версий. Например:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:344 +#, no-wrap +msgid "" +"% pkg version -t 0.031 0.29\n" +">\n" +msgstr "" +"% pkg version -t 0.031 0.29\n" +">\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:347 +msgid "" +"The `>` output indicates that version 0.031 is considered greater than " +"version 0.29, which may not have been obvious to the porter." +msgstr "" +"Символ `>` в выводе указывает, что версия 0.031 считается больше, чем версия " +"0.29, что могло быть неочевидно для сопровождающего." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:354 +msgid "" +"In situations such as this, `PORTEPOCH` must be increased. If `PORTEPOCH` " +"is nonzero it is appended to the package name as described in section 0 " +"above. `PORTEPOCH` must never be decreased or reset to zero, because that " +"would cause comparison to a package from an earlier epoch to fail. For " +"example, the package would not be detected as out of date. The new version " +"number, `1.0,1` in the above example, is still numerically less than the " +"previous version, 20000801, but the `,1` suffix is treated specially by " +"automated tools and found to be greater than the implied suffix `,0` on the " +"earlier package." +msgstr "" +"В таких ситуациях необходимо увеличить `PORTEPOCH`. Если `PORTEPOCH` не " +"равен нулю, он добавляется к имени пакета, как описано в разделе 0 выше. " +"`PORTEPOCH` никогда не должен уменьшаться или сбрасываться до нуля, потому " +"что это приведёт к ошибке при сравнении с пакетом из более ранней эпохи. " +"Например, пакет не будет обнаружен как устаревший. Новый номер версии, " +"`1.0,1` в приведённом выше примере, всё ещё численно меньше предыдущей " +"версии, 20000801, но суффикс `,1` обрабатывается автоматизированными " +"инструментами особым образом и считается большим, чем подразумеваемый " +"суффикс `,0` у предыдущего пакета." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:357 +msgid "" +"Dropping or resetting `PORTEPOCH` incorrectly leads to no end of grief. If " +"the discussion above was not clear enough, please consult the {freebsd-" +"ports}." +msgstr "" +"Неправильное удаление или сброс `PORTEPOCH` приводит к бесконечным " +"проблемам. Если приведённое выше объяснение недостаточно ясно, обратитесь к " +"{freebsd-ports}." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:361 +msgid "" +"It is expected that `PORTEPOCH` will not be used for the majority of ports, " +"and that sensible use of `DISTVERSION`, or that use `PORTVERSION` carefully, " +"can often preempt it becoming necessary if a future release of the software " +"changes the version structure. However, care is needed by FreeBSD porters " +"when a vendor release is made without an official version number - such as a " +"code \"snapshot\" release. The temptation is to label the release with the " +"release date, which will cause problems as in the example above when a new " +"\"official\" release is made." +msgstr "" +"Ожидается, что `PORTEPOCH` не будет использоваться для большинства портов, и " +"что разумное использование `DISTVERSION` или аккуратное применение " +"`PORTVERSION` часто может предотвратить необходимость его использования, " +"если будущий выпуск программного обеспечения изменит структуру версий. " +"Однако разработчикам портов FreeBSD следует быть осторожными, когда вендор " +"выпускает релиз без официального номера версии — например, релиз в виде " +"\"снимка\" кода. Возникает соблазн обозначить такой релиз датой выпуска, что " +"вызовет проблемы, как в примере выше, когда будет сделан новый " +"\"официальный\" релиз." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:364 +msgid "" +"For example, if a snapshot release is made on the date `20000917`, and the " +"previous version of the software was version `1.2`, do not use `20000917` " +"for `DISTVERSION`. The correct way is a `DISTVERSION` of `1.2.20000917`, or " +"similar, so that the succeeding release, say `1.3`, is still a numerically " +"greater value." +msgstr "" +"Например, если снимок выпущен на дату `20000917`, а предыдущая версия " +"программного обеспечения была `1.2`, не следует использовать `20000917` для " +"`DISTVERSION`. Правильным будет указать `DISTVERSION` как `1.2.20000917` или " +"подобное, чтобы следующая версия, например `1.3`, оставалась численно " +"большей." + +#. type: Title ==== +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:366 +#, no-wrap +msgid "Example of `PORTREVISION` and `PORTEPOCH` Usage" +msgstr "Пример использования `PORTREVISION` и `PORTEPOCH`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:369 +msgid "" +"The `gtkmumble` port, version `0.10`, is committed to the ports collection:" +msgstr "Порт `gtkmumble` версии `0.10` добавлен в коллекцию портов:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:374 +#, no-wrap +msgid "" +"PORTNAME=\tgtkmumble\n" +"DISTVERSION=\t0.10\n" +msgstr "" +"PORTNAME=\tgtkmumble\n" +"DISTVERSION=\t0.10\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:377 +msgid "`PKGNAME` becomes `gtkmumble-0.10`." +msgstr "`PKGNAME` становится `gtkmumble-0.10`." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:380 +msgid "" +"A security hole is discovered which requires a local FreeBSD patch. " +"`PORTREVISION` is bumped accordingly." +msgstr "" +"Обнаружена уязвимость в безопасности, требующая локального исправления " +"FreeBSD. `PORTREVISION` соответствующим образом увеличивается." + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:386 +#, no-wrap +msgid "" +"PORTNAME=\tgtkmumble\n" +"DISTVERSION=\t0.10\n" +"PORTREVISION=\t1\n" +msgstr "" +"PORTNAME=\tgtkmumble\n" +"DISTVERSION=\t0.10\n" +"PORTREVISION=\t1\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:389 +msgid "`PKGNAME` becomes `gtkmumble-0.10_1`" +msgstr "`PKGNAME` принимает значение `gtkmumble-0.10_1`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:393 +msgid "" +"A new version is released by the vendor, numbered `0.2` (it turns out the " +"author actually intended `0.10` to actually mean `0.1.0`, not \"what comes " +"after 0.9\" - oops, too late now). Since the new minor version `2` is " +"numerically less than the previous version `10`, `PORTEPOCH` must be bumped " +"to manually force the new package to be detected as \"newer\". Since it is " +"a new vendor release of the code, `PORTREVISION` is reset to 0 (or removed " +"from the [.filename]#Makefile#)." +msgstr "" +"Выпущена новая версия от поставщика под номером `0.2` (оказывается, автор " +"изначально подразумевал, что `0.10` на самом деле означает `0.1.0`, а не " +"\"то, что идет после 0.9\" — увы, теперь уже поздно). Поскольку новая " +"минорная версия `2` численно меньше предыдущей версии `10`, необходимо " +"увеличить `PORTEPOCH`, чтобы вручную заставить систему распознавать новый " +"пакет как \"более новый\". Так как это новый релиз кода от поставщика, " +"`PORTREVISION` сбрасывается до 0 (или удаляется из [.filename]#Makefile#)." + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:399 +#, no-wrap +msgid "" +"PORTNAME=\tgtkmumble\n" +"DISTVERSION=\t0.2\n" +"PORTEPOCH=\t1\n" +msgstr "" +"PORTNAME=\tgtkmumble\n" +"DISTVERSION=\t0.2\n" +"PORTEPOCH=\t1\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:402 +msgid "`PKGNAME` becomes `gtkmumble-0.2,1`" +msgstr "`PKGNAME` становится `gtkmumble-0.2,1`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:405 +msgid "" +"The next release is 0.3. Since `PORTEPOCH` never decreases, the version " +"variables are now:" +msgstr "" +"Следующий выпуск — 0.3. Поскольку `PORTEPOCH` никогда не уменьшается, " +"переменные версий теперь выглядят так:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:411 +#, no-wrap +msgid "" +"PORTNAME=\tgtkmumble\n" +"DISTVERSION=\t0.3\n" +"PORTEPOCH=\t1\n" +msgstr "" +"PORTNAME=\tgtkmumble\n" +"DISTVERSION=\t0.3\n" +"PORTEPOCH=\t1\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:414 +msgid "`PKGNAME` becomes `gtkmumble-0.3,1`" +msgstr "`PKGNAME` принимает значение `gtkmumble-0.3,1`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:419 +msgid "" +"If `PORTEPOCH` were reset to `0` with this upgrade, someone who had " +"installed the `gtkmumble-0.10_1` package would not detect the " +"`gtkmumble-0.3` package as newer, since `3` is still numerically less than " +"`10`. Remember, this is the whole point of `PORTEPOCH` in the first place." +msgstr "" +"Если бы `PORTEPOCH` был сброшен в `0` при этом обновлении, пользователь, " +"установивший пакет `gtkmumble-0.10_1`, не увидел бы пакет `gtkmumble-0.3` " +"как более новый, поскольку `3` всё ещё численно меньше, чем `10`. Помните, в " +"этом и заключается вся суть `PORTEPOCH` изначально." + +#. type: Title === +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:422 +#, no-wrap +msgid "`PKGNAMEPREFIX` and `PKGNAMESUFFIX`" +msgstr "`PKGNAMEPREFIX` и `PKGNAMESUFFIX`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:429 +msgid "" +"Two optional variables, `PKGNAMEPREFIX` and `PKGNAMESUFFIX`, are combined " +"with `PORTNAME` and `PORTVERSION` to form `PKGNAME` as `${PKGNAMEPREFIX}$" +"{PORTNAME}${PKGNAMESUFFIX}-${PORTVERSION}`. Make sure this conforms to our " +"crossref:makefiles[porting-pkgname,guidelines for a good package name]. In " +"particular, the use of a hyphen (`-`) in `PORTVERSION` is _not_ allowed. " +"Also, if the package name has the _language-_ or the _-compiled.specifics_ " +"part (see below), use `PKGNAMEPREFIX` and `PKGNAMESUFFIX`, respectively. Do " +"not make them part of `PORTNAME`." +msgstr "" +"Две необязательные переменные, `PKGNAMEPREFIX` и `PKGNAMESUFFIX`, " +"объединяются с `PORTNAME` и `PORTVERSION` для формирования `PKGNAME` в виде " +"`${PKGNAMEPREFIX}${PORTNAME}${PKGNAMESUFFIX}-${PORTVERSION}`. Убедитесь, что " +"это соответствует нашим crossref:makefiles[porting-pkgname,рекомендациям по " +"именованию пакетов]. В частности, использование дефиса (`-`) в `PORTVERSION` " +"_не_ допускается. Кроме того, если имя пакета содержит часть _language-_ или " +"_-compiled.specifics_ (см. ниже), используйте `PKGNAMEPREFIX` и " +"`PKGNAMESUFFIX` соответственно. Не включайте их в `PORTNAME`." + +#. type: Title === +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:431 +#, no-wrap +msgid "Package Naming Conventions" +msgstr "Соглашения о наименовании пакетов" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:435 +msgid "" +"These are the conventions to follow when naming packages. This is to make " +"the package directory easy to scan, as there are already thousands of " +"packages and users are going to turn away if they hurt their eyes!" +msgstr "" +"Вот соглашения, которым следует придерживаться при наименовании пакетов. Это " +"сделано для того, чтобы каталог пакетов было легко просматривать, поскольку " +"там уже тысячи пакетов, и пользователи могут отказаться от их использования, " +"если это будет напрягать их глаза!" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:437 +msgid "" +"Package names take the form of [.filename]#language_region-name-" +"compiled.specifics-version.numbers#." +msgstr "" +"Имена пакетов имеют формат [.filename]#language_region-name-" +"compiled.specifics-version.numbers#." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:440 +msgid "" +"The package name is defined as `${PKGNAMEPREFIX}${PORTNAME}${PKGNAMESUFFIX}-$" +"{PORTVERSION}`. Make sure to set the variables to conform to that format." +msgstr "" +"Имя пакета определяется как `${PKGNAMEPREFIX}${PORTNAME}${PKGNAMESUFFIX}-$" +"{PORTVERSION}`. Убедитесь, что переменные заданы в соответствии с этим " +"форматом." + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:442 +#, no-wrap +msgid "[.filename]#language_region-#" +msgstr "[.filename]#language_region-#" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:446 +msgid "" +"FreeBSD strives to support the native language of its users. The _language-" +"_ part is a two letter abbreviation of the natural language defined by " +"ISO-639 when the port is specific to a certain language. Examples are `ja` " +"for Japanese, `ru` for Russian, `vi` for Vietnamese, `zh` for Chinese, `ko` " +"for Korean and `de` for German." +msgstr "" +"FreeBSD стремится поддерживать родной язык своих пользователей. Часть " +"_language-_ представляет собой двухбуквенное сокращение естественного языка, " +"определённое стандартом ISO-639, когда порт относится к определённому " +"языку. Примерами являются `ja` для японского, `ru` для русского, `vi` для " +"вьетнамского, `zh` для китайского, `ko` для корейского и `de` для немецкого." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:449 +msgid "" +"If the port is specific to a certain region within the language area, add " +"the two letter country code as well. Examples are `en_US` for US English " +"and `fr_CH` for Swiss French." +msgstr "" +"Если порт относится к определённому региону в языковой зоне, добавьте также " +"двухбуквенный код страны. Например, `en_US` для американского английского и " +"`fr_CH` для швейцарского французского." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:451 +msgid "The _language-_ part is set in `PKGNAMEPREFIX`." +msgstr "Часть _language-_ задается в `PKGNAMEPREFIX`." + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:453 +#, no-wrap +msgid "[.filename]#name#" +msgstr "[.filename]#name#" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:458 +msgid "" +"Make sure that the port's name and version are clearly separated and placed " +"into `PORTNAME` and `DISTVERSION`. The only reason for `PORTNAME` to " +"contain a version part is if the upstream distribution is really named that " +"way, as in the package:textproc/libxml2[] or package:japanese/kinput2-" +"freewnn[] ports. Otherwise, `PORTNAME` cannot contain any version-specific " +"information. It is quite normal for several ports to have the same " +"`PORTNAME`, as the package:www/apache*[] ports do; in that case, different " +"versions (and different index entries) are distinguished by `PKGNAMEPREFIX` " +"and `PKGNAMESUFFIX` values." +msgstr "" +"Убедитесь, что название порта и его версия четко разделены и указаны в " +"`PORTNAME` и `DISTVERSION`. Единственная причина, по которой `PORTNAME` " +"может содержать часть версии, — это если вышестоящее распространяемое ПО " +"действительно так названо, как в портах package:textproc/libxml2[] или " +"package:japanese/kinput2-freewnn[]. В противном случае `PORTNAME` не может " +"содержать информацию о версии. Довольно нормально, когда несколько портов " +"имеют одинаковый `PORTNAME`, как это делают порты package:www/apache*[]; в " +"таком случае разные версии (и разные записи в индексе) различаются " +"значениями `PKGNAMEPREFIX` и `PKGNAMESUFFIX`." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:461 +msgid "" +"There is a tradition of naming `Perl 5` modules by prepending `p5-` and " +"converting the double-colon separator to a hyphen. For example, the " +"`Data::Dumper` module becomes `p5-Data-Dumper`." +msgstr "" +"Существует традиция называть модули `Perl 5`, добавляя префикс `p5-` и " +"заменя разделитель в виде двойного двоеточия на дефис. Например, модуль " +"`Data::Dumper` становится `p5-Data-Dumper`." + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:462 +#, no-wrap +msgid "[.filename]#-compiled.specifics#" +msgstr "[.filename]#-compiled.specifics#" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:467 +msgid "" +"If the port can be built with different crossref:makefiles[makefile-" +"masterdir,hardcoded defaults] (usually part of the directory name in a " +"family of ports), the _-compiled.specifics_ part states the compiled-in " +"defaults. The hyphen is optional. Examples are paper size and font units." +msgstr "" +"Если порт может быть собран с различными crossref:makefiles[makefile-" +"masterdir,жестко заданными значениями по умолчанию] (обычно это часть имени " +"каталога в семействе портов), часть _-compiled.specifics_ указывает " +"скомпилированные значения по умолчанию. Дефис является необязательным. " +"Примерами могут служить размер бумаги и единицы измерения шрифтов." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:469 +msgid "The _-compiled.specifics_ part is set in `PKGNAMESUFFIX`." +msgstr "Часть _-compiled.specifics_ задаётся в `PKGNAMESUFFIX`." + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:471 +#, no-wrap +msgid "[.filename]#-version.numbers#" +msgstr "[.filename]#-version.numbers#" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:477 +msgid "" +"The version string follows a dash (`-`) and is a period-separated list of " +"integers and single lowercase alphabetics. In particular, it is not " +"permissible to have another dash inside the version string. The only " +"exception is the string `pl` (meaning \"patchlevel\"), which can be used " +"_only_ when there are no major and minor version numbers in the software. " +"If the software version has strings like \"alpha\", \"beta\", \"rc\", or " +"\"pre\", take the first letter and put it immediately after a period. If " +"the version string continues after those names, the numbers follow the " +"single alphabet without an extra period between them (for example, `1.0b2`)." +msgstr "" +"Строка версии следует после тире (`-`) и представляет собой разделённый " +"точками список целых чисел и строчных букв латинского алфавита. В частности, " +"не допускается использование дополнительных тире внутри строки версии. " +"Единственное исключение — строка `pl` (означающая \"уровень исправления\"), " +"которую можно использовать _только_ в случае отсутствия у программного " +"обеспечения номеров основной и дополнительной версий. Если в версии " +"программного обеспечения встречаются строки типа \"alpha\", \"beta\", \"rc\" " +"или \"pre\", следует взять первую букву и поместить её сразу после точки. " +"Если после таких названий строка версии продолжается, числа следуют за " +"буквой без дополнительной точки между ними (например, `1.0b2`)." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:481 +msgid "" +"The idea is to make it easier to sort ports by looking at the version " +"string. In particular, make sure version number components are always " +"delimited by a period, and if the date is part of the string, use the " +"`d__yyyy.mm.dd__` format, not `_dd.mm.yyyy_` or the non-Y2K compliant " +"`_yy.mm.dd_` format. It is important to prefix the version with a letter, " +"here `d` (for date), in case a release with an actual version number is " +"made, which would be numerically less than `_yyyy_`." +msgstr "" +"Идея заключается в упрощении сортировки портов за счёт анализа строки " +"версии. В частности, необходимо убедиться, что компоненты номера версии " +"всегда разделены точкой, а если дата является частью строки, использовать " +"формат `d__yyyy.mm.dd__`, а не `_dd.mm.yyyy_` или не соответствующий " +"стандарту Y2K формат `_yy.mm.dd_`. Важно добавлять перед версией букву, в " +"данном случае `d` (от слова \"дата\"), на случай, если будет выпущена версия " +"с фактическим номером, который численно окажется меньше `_yyyy_`." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:487 +msgid "" +"Package name must be unique among all of the ports tree, check that there is " +"not already a port with the same `PORTNAME` and if there is add one of " +"crossref:makefiles[porting-pkgnameprefix-suffix,`PKGNAMEPREFIX` or " +"`PKGNAMESUFFIX`]." +msgstr "" +"Название пакета должно быть уникальным среди всех портов в дереве. " +"Убедитесь, что порт с таким же `PORTNAME` ещё не существует, и если он есть, " +"добавьте один из crossref:makefiles[porting-pkgnameprefix-" +"suffix,`PKGNAMEPREFIX` или `PKGNAMESUFFIX`]." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:490 +msgid "" +"Here are some (real) examples on how to convert the name as called by the " +"software authors to a suitable package name, for each line, only one of " +"`DISTVERSION` or `PORTVERSION` is set in, depending on which would be used " +"in the port's [.filename]#Makefile#:" +msgstr "" +"Вот несколько (реальных) примеров преобразования названия, указанного " +"авторами программного обеспечения, в подходящее имя пакета. В каждой строке " +"указана только одна из переменных `DISTVERSION` или `PORTVERSION`, в " +"зависимости от того, какая используется в [.filename]#Makefile# порта:" + +#. type: Block title +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:491 +#, no-wrap +msgid "Package Naming Examples" +msgstr "Примеры наименования пакетов" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:495 +#, no-wrap +msgid "Distribution Name" +msgstr "Имя дистрибутива" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:496 +#, no-wrap +msgid "PKGNAMEPREFIX" +msgstr "PKGNAMEPREFIX" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:497 +#, no-wrap +msgid "PORTNAME" +msgstr "PORTNAME" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:498 +#, no-wrap +msgid "PKGNAMESUFFIX" +msgstr "PKGNAMESUFFIX" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:502 +#, no-wrap +msgid "Reason or comment" +msgstr "Причина или комментарий" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:503 +#, no-wrap +msgid "mule-2.2.2" +msgstr "mule-2.2.2" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:504 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:506 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:512 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:520 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:522 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:528 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:530 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:536 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:538 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:544 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:546 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:552 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:554 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:560 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:562 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:568 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:570 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:576 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:578 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:586 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:592 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:600 +#, no-wrap +msgid "(empty)" +msgstr "(пусто)" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:505 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:513 +#, no-wrap +msgid "mule" +msgstr "mule" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:507 +#, no-wrap +msgid "2.2.2" +msgstr "2.2.2" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:510 +#, no-wrap +msgid "No changes required" +msgstr "Никаких изменений не требуется" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:511 +#, no-wrap +msgid "mule-1.0.1" +msgstr "mule-1.0.1" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:514 +#, no-wrap +msgid "1" +msgstr "1" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:515 +#, no-wrap +msgid "1.0.1" +msgstr "1.0.1" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:518 +#, no-wrap +msgid "This is version 1 of mule, and version 2 already exists" +msgstr "Это версия 1 mule, а версия 2 уже существует" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:519 +#, no-wrap +msgid "EmiClock-1.0.2" +msgstr "EmiClock-1.0.2" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:521 +#, no-wrap +msgid "emiclock" +msgstr "emiclock" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:523 +#, no-wrap +msgid "1.0.2" +msgstr "1.0.2" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:526 +#, no-wrap +msgid "No uppercase names for single programs" +msgstr "Нет имен в верхнем регистре для отдельных программ" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:527 +#, no-wrap +msgid "rdist-1.3alpha" +msgstr "rdist-1.3alpha" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:529 +#, no-wrap +msgid "rdist" +msgstr "rdist" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:531 +#, no-wrap +msgid "1.3alpha" +msgstr "1.3alpha" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:534 +#, no-wrap +msgid "Version will be `1.3.a`" +msgstr "Версия будет `1.3.a`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:535 +#, no-wrap +msgid "es-0.9-beta1" +msgstr "es-0.9-beta1" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:537 +#, no-wrap +msgid "es" +msgstr "es" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:539 +#, no-wrap +msgid "0.9-beta1" +msgstr "0.9-beta1" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:542 +#, no-wrap +msgid "Version will be `0.9.b1`" +msgstr "Версия будет `0.9.b1`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:543 +#, no-wrap +msgid "mailman-2.0rc3" +msgstr "mailman-2.0rc3" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:545 +#, no-wrap +msgid "mailman" +msgstr "mailman" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:547 +#, no-wrap +msgid "2.0rc3" +msgstr "2.0rc3" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:550 +#, no-wrap +msgid "Version will be `2.0.r3`" +msgstr "Версия будет `2.0.r3`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:551 +#, no-wrap +msgid "v3.3beta021.src" +msgstr "v3.3beta021.src" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:553 +#, no-wrap +msgid "tiff" +msgstr "tiff" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:556 +#, no-wrap +msgid "3.3" +msgstr "3.3" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:558 +#, no-wrap +msgid "What the heck was that anyway?" +msgstr "Что это вообще было?" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:559 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:561 +#, no-wrap +msgid "tvtwm" +msgstr "tvtwm" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:564 +#, no-wrap +msgid "p11" +msgstr "p11" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:566 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:574 +#, no-wrap +msgid "No version in the filename, use what upstream says it is" +msgstr "Нет версии в имени файла, используйте то, что указано в исходном коде" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:567 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:569 +#, no-wrap +msgid "piewm" +msgstr "piewm" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:571 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:603 +#, no-wrap +msgid "1.0" +msgstr "1.0" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:575 +#, no-wrap +msgid "xvgr-2.10pl1" +msgstr "xvgr-2.10pl1" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:577 +#, no-wrap +msgid "xvgr" +msgstr "xvgr" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:580 +#, no-wrap +msgid "2.10.pl1" +msgstr "2.10.pl1" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:582 +#, no-wrap +msgid "In that case, `pl1` means patch level, so using DISTVERSION is not possible." +msgstr "В таком случае, `pl1` означает уровень патча, поэтому использование DISTVERSION невозможно." + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:583 +#, no-wrap +msgid "gawk-2.15.6" +msgstr "gawk-2.15.6" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:584 +#, no-wrap +msgid "ja-" +msgstr "ja-" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:585 +#, no-wrap +msgid "gawk" +msgstr "gawk" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:587 +#, no-wrap +msgid "2.15.6" +msgstr "2.15.6" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:590 +#, no-wrap +msgid "Japanese language version" +msgstr "Японская языковая версия" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:591 +#, no-wrap +msgid "psutils-1.13" +msgstr "psutils-1.13" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:593 +#, no-wrap +msgid "psutils" +msgstr "psutils" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:594 +#, no-wrap +msgid "-letter" +msgstr "-letter" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:595 +#, no-wrap +msgid "1.13" +msgstr "1.13" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:598 +#, no-wrap +msgid "Paper size hardcoded at package build time" +msgstr "Размер бумаги жестко задан во время сборки пакета" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:599 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:601 +#, no-wrap +msgid "pkfonts" +msgstr "pkfonts" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:602 +#, no-wrap +msgid "300" +msgstr "300" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:605 +#, no-wrap +msgid "Package for 300dpi fonts" +msgstr "Пакет для шрифтов с разрешением 300dpi" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:609 +msgid "" +"If there is absolutely no trace of version information in the original " +"source and it is unlikely that the original author will ever release another " +"version, just set the version string to `1.0` (like the `piewm` example " +"above). Otherwise, ask the original author or use the date string the " +"source file was released on (`d__yyyy.mm.dd__`, or `d__yyyymmdd__`) as the " +"version." +msgstr "" +"Если в исходном источнике полностью отсутствует информация о версии и " +"маловероятно, что автор когда-либо выпустит новую версию, просто укажите " +"строку версии как `1.0` (как в примере с `piewm` выше). В противном случае, " +"спросите автора или используйте дату выпуска исходного файла в формате " +"`d__yyyy.mm.dd__` или `d__yyyymmdd__` в качестве версии." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:614 +msgid "" +"Use any letter. Here, `d` here stands for date, if the source is a Git " +"repository, `g` followed by the commit date is commonly used, using `s` for " +"snapshot is also common." +msgstr "" +"Используйте любую букву. Здесь `d` означает дату, если источник — это " +"репозиторий Git, часто используется `g` с последующей датой коммита, также " +"распространено использование `s` для снимка." + +#. type: Title == +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:617 +#, no-wrap +msgid "Categorization" +msgstr "Категоризация" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:620 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4867 +#, no-wrap +msgid "`CATEGORIES`" +msgstr "`CATEGORIES`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:626 +msgid "" +"When a package is created, it is put under [.filename]#/usr/ports/packages/" +"All# and links are made from one or more subdirectories of [.filename]#/usr/" +"ports/packages#. The names of these subdirectories are specified by the " +"variable `CATEGORIES`. It is intended to make life easier for the user when " +"he is wading through the pile of packages on the FTP site or the CDROM. " +"Please take a look at the crossref:makefiles[porting-categories,current list " +"of categories] and pick the ones that are suitable for the port." +msgstr "" +"При создании пакета он помещается в [.filename]#/usr/ports/packages/All#, и " +"ссылки на него создаются в одной или нескольких поддиректориях [.filename]#/" +"usr/ports/packages#. Имена этих поддиректорий задаются переменной " +"`CATEGORIES`. Это предназначено для облегчения поиска пакетов пользователем " +"при просмотре большого количества пакетов на FTP-сайте или CDROM. " +"Пожалуйста, ознакомьтесь с crossref:makefiles[porting-categories,текущим " +"списком категорий] и выберите подходящие для данного порта." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:630 +msgid "" +"This list also determines where in the ports tree the port is imported. If " +"there is more than one category here, the port files must be put in the " +"subdirectory with the name of the first category. See " +"crossref:makefiles[choosing-categories,below] for more discussion about how " +"to pick the right categories." +msgstr "" +"Этот список также определяет, где в дереве портов будет размещён порт. Если " +"здесь указано несколько категорий, файлы порта должны быть помещены в " +"подкаталог с названием первой категории. Дополнительные сведения о выборе " +"подходящих категорий см. в crossref:makefiles[choosing-categories,ниже]." + +#. type: Title === +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:632 +#, no-wrap +msgid "Current List of Categories" +msgstr "Текущий список категорий" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:637 +msgid "" +"Here is the current list of port categories. Those marked with an asterisk " +"(`*`) are _virtual_ categories-those that do not have a corresponding " +"subdirectory in the ports tree. They are only used as secondary categories, " +"and only for search purposes." +msgstr "" +"Вот текущий список категорий портов. Категории, помеченные звёздочкой (`*`), " +"являются _виртуальными_ — они не имеют соответствующего подкаталога в дереве " +"портов. Они используются только как вторичные категории и исключительно для " +"целей поиска." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:641 +msgid "" +"For non-virtual categories, there is a one-line description in `COMMENT` in " +"that subdirectory's [.filename]#Makefile#." +msgstr "" +"Для невиртуальных категорий в `COMMENT` в [.filename]#Makefile# " +"соответствующего подкаталога содержится однострочное описание." + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:647 +#, no-wrap +msgid "Category" +msgstr "Категория" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:648 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1473 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1882 +#, no-wrap +msgid "Description" +msgstr "Описание" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:650 +#, no-wrap +msgid "Notes" +msgstr "Заметки" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:651 +#, no-wrap +msgid "[.filename]#accessibility#" +msgstr "[.filename]#accessibility#" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:652 +#, no-wrap +msgid "Ports to help disabled users." +msgstr "Порты для помощи пользователям с ограниченными возможностями." + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:655 +#, no-wrap +msgid "[.filename]#afterstep#`*`" +msgstr "[.filename]#afterstep#`*`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:656 +#, no-wrap +msgid "Ports to support the http://www.afterstep.org/[AfterStep] window manager." +msgstr "Порты для поддержки оконного менеджера http://www.afterstep.org/[AfterStep]." + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:659 +#, no-wrap +msgid "[.filename]#arabic#" +msgstr "[.filename]#arabic#" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:660 +#, no-wrap +msgid "Arabic language support." +msgstr "Поддержка арабского языка." + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:663 +#, no-wrap +msgid "[.filename]#archivers#" +msgstr "[.filename]#archivers#" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:664 +#, no-wrap +msgid "Archiving tools." +msgstr "Инструменты для архивирования." + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:667 +#, no-wrap +msgid "[.filename]#astro#" +msgstr "[.filename]#astro#" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:668 +#, no-wrap +msgid "Astronomical ports." +msgstr "Астрономические порты." + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:671 +#, no-wrap +msgid "[.filename]#audio#" +msgstr "[.filename]#audio#" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:672 +#, no-wrap +msgid "Sound support." +msgstr "Поддержка звука." + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:675 +#, no-wrap +msgid "[.filename]#benchmarks#" +msgstr "[.filename]#benchmarks#" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:676 +#, no-wrap +msgid "Benchmarking utilities." +msgstr "Утилиты для тестирования производительности." + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:679 +#, no-wrap +msgid "[.filename]#biology#" +msgstr "[.filename]#biology#" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:680 +#, no-wrap +msgid "Biology-related software." +msgstr "Программное обеспечение, связанное с биологией." + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:683 +#, no-wrap +msgid "[.filename]#cad#" +msgstr "[.filename]#cad#" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:684 +#, no-wrap +msgid "Computer aided design tools." +msgstr "Компьютерные средства автоматизированного проектирования." + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:687 +#, no-wrap +msgid "[.filename]#chinese#" +msgstr "[.filename]#chinese#" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:688 +#, no-wrap +msgid "Chinese language support." +msgstr "Поддержка китайского языка." + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:691 +#, no-wrap +msgid "[.filename]#comms#" +msgstr "[.filename]#comms#" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:692 +#, no-wrap +msgid "Communication software." +msgstr "Программное обеспечение для связи." + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:694 +#, no-wrap +msgid "Mostly software to talk to the serial port." +msgstr "В основном программное обеспечение для работы с последовательным портом." + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:695 +#, no-wrap +msgid "[.filename]#converters#" +msgstr "[.filename]#converters#" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:696 +#, no-wrap +msgid "Character code converters." +msgstr "Преобразователи символьных кодировок." + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:699 +#, no-wrap +msgid "[.filename]#databases#" +msgstr "[.filename]#databases#" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:700 +#, no-wrap +msgid "Databases." +msgstr "Базы данных." + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:703 +#, no-wrap +msgid "[.filename]#deskutils#" +msgstr "[.filename]#deskutils#" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:704 +#, no-wrap +msgid "Things that used to be on the desktop before computers were invented." +msgstr "Вещи, которые раньше находились на рабочем столе до изобретения компьютеров." + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:707 +#, no-wrap +msgid "[.filename]#devel#" +msgstr "[.filename]#devel#" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:708 +#, no-wrap +msgid "Development utilities." +msgstr "Средства разработки." + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:710 +#, no-wrap +msgid "Do not put libraries here just because they are libraries. They should _not_ be in this category unless they truly do not belong anywhere else." +msgstr "Не размещайте библиотеки здесь только потому, что они являются библиотеками. Они _не_ должны быть в этой категории, если только они действительно не подходят никуда больше." + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:711 +#, no-wrap +msgid "[.filename]#dns#" +msgstr "[.filename]#dns#" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:712 +#, no-wrap +msgid "DNS-related software." +msgstr "Программное обеспечение, связанное с DNS." + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:715 +#, no-wrap +msgid "[.filename]#docs#`*`" +msgstr "[.filename]#docs#`*`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:716 +#, no-wrap +msgid "Meta-ports for FreeBSD documentation." +msgstr "Мета-порты для документации FreeBSD." + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:719 +#, no-wrap +msgid "[.filename]#editors#" +msgstr "[.filename]#editors#" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:720 +#, no-wrap +msgid "General editors." +msgstr "Общие редакторы." + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:722 +#, no-wrap +msgid "Specialized editors go in the section for those tools. For example, a mathematical-formula editor will go in [.filename]#math#, and have [.filename]#editors# as a second category." +msgstr "Специализированные редакторы помещаются в раздел соответствующих инструментов. Например, редактор математических формул будет помещён в [.filename]#math#, а [.filename]#editors# будет для него второй категорией." + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:723 +#, no-wrap +msgid "[.filename]#education#`*`" +msgstr "[.filename]#education#`*`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:724 +#, no-wrap +msgid "Education-related software." +msgstr "Программное обеспечение для образования." + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:726 +#, no-wrap +msgid "This includes applications, utilities, or games primarily or substantially designed to help the user learn a specific topic or study in general. It also includes course-writing applications, course-delivery applications, and classroom or school management applications" +msgstr "Это включает приложения, утилиты или игры, разработанные в первую очередь или в значительной степени для помощи пользователю в изучении конкретной темы или обучении в целом. Также сюда входят приложения для создания курсов, приложения для предоставления курсов и приложения для управления классом или школой" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:727 +#, no-wrap +msgid "[.filename]#elisp#`*`" +msgstr "[.filename]#elisp#`*`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:728 +#, no-wrap +msgid "Emacs-lisp ports." +msgstr "Порты Emacs-lisp." + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:731 +#, no-wrap +msgid "[.filename]#emulators#" +msgstr "[.filename]#emulators#" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:732 +#, no-wrap +msgid "Emulators for other operating systems." +msgstr "Эмуляторы других операционных систем." + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:734 +#, no-wrap +msgid "Terminal emulators do _not_ belong here. X-based ones go to [.filename]#x11# and text-based ones to either [.filename]#comms# or [.filename]#misc#, depending on the exact functionality." +msgstr "Терминальные эмуляторы _не_ относятся сюда. Основанные на X идут в [.filename]#x11#, а текстовые — либо в [.filename]#comms#, либо в [.filename]#misc#, в зависимости от конкретной функциональности." + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:735 +#, no-wrap +msgid "[.filename]#enlightenment#`*`" +msgstr "[.filename]#enlightenment#`*`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:736 +#, no-wrap +msgid "Ports related to the Enlightenment window manager." +msgstr "Порты, связанные с оконным менеджером Enlightenment." + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:739 +#, no-wrap +msgid "[.filename]#filesystems#" +msgstr "[.filename]#filesystems#" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:740 +#, no-wrap +msgid "File systems and related utilities." +msgstr "Файловые системы и связанные утилиты." + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:743 +#, no-wrap +msgid "[.filename]#finance#" +msgstr "[.filename]#finance#" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:744 +#, no-wrap +msgid "Monetary, financial and related applications." +msgstr "Монетарные, финансовые и связанные с ними приложения." + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:747 +#, no-wrap +msgid "[.filename]#french#" +msgstr "[.filename]#french#" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:748 +#, no-wrap +msgid "French language support." +msgstr "Поддержка французского языка." + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:751 +#, no-wrap +msgid "[.filename]#ftp#" +msgstr "[.filename]#ftp#" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:752 +#, no-wrap +msgid "FTP client and server utilities." +msgstr "Клиентские и серверные утилиты FTP." + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:754 +#, no-wrap +msgid "If the port speaks both FTP and HTTP, put it in [.filename]#ftp# with a secondary category of [.filename]#www#." +msgstr "Если порт поддерживает как FTP, так и HTTP, поместите его в [.filename]#ftp# с дополнительной категорией [.filename]#www#." + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:755 +#, no-wrap +msgid "[.filename]#games#" +msgstr "[.filename]#games#" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:756 +#, no-wrap +msgid "Games." +msgstr "Игры." + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:759 +#, no-wrap +msgid "[.filename]#geography#`*`" +msgstr "[.filename]#география#`*`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:760 +#, no-wrap +msgid "Geography-related software." +msgstr "Программное обеспечение, связанное с географией." + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:763 +#, no-wrap +msgid "[.filename]#german#" +msgstr "[.filename]#german#" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:764 +#, no-wrap +msgid "German language support." +msgstr "Поддержка немецкого языка." + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:767 +#, no-wrap +msgid "[.filename]#gnome#`*`" +msgstr "[.filename]#gnome#`*`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:768 +#, no-wrap +msgid "Ports from the https://www.gnome.org/[GNOME] Project." +msgstr "Порты из проекта https://www.gnome.org/[GNOME]." + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:771 +#, no-wrap +msgid "[.filename]#gnustep#`*`" +msgstr "[.filename]#gnustep#`*`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:772 +#, no-wrap +msgid "Software related to the GNUstep desktop environment." +msgstr "Программное обеспечение, связанное со средой рабочего стола GNUstep." + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:775 +#, no-wrap +msgid "[.filename]#graphics#" +msgstr "[.filename]#graphics#" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:776 +#, no-wrap +msgid "Graphics utilities." +msgstr "Графические утилиты." + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:779 +#, no-wrap +msgid "[.filename]#hamradio#`*`" +msgstr "[.filename]#hamradio#`*`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:780 +#, no-wrap +msgid "Software for amateur radio." +msgstr "Программное обеспечение для радиолюбителей." + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:783 +#, no-wrap +msgid "[.filename]#haskell#`*`" +msgstr "[.filename]#haskell#`*`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:784 +#, no-wrap +msgid "Software related to the Haskell language." +msgstr "Программное обеспечение, связанное с языком Haskell." + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:787 +#, no-wrap +msgid "[.filename]#hebrew#" +msgstr "[.filename]#hebrew#" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:788 +#, no-wrap +msgid "Hebrew language support." +msgstr "Поддержка иврита." + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:791 +#, no-wrap +msgid "[.filename]#hungarian#" +msgstr "[.filename]#hungarian#" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:792 +#, no-wrap +msgid "Hungarian language support." +msgstr "Венгерская языковая поддержка." + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:795 +#, no-wrap +msgid "[.filename]#irc#" +msgstr "[.filename]#irc#" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:796 +#, no-wrap +msgid "Internet Relay Chat utilities." +msgstr "Утилиты Internet Relay Chat." + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:799 +#, no-wrap +msgid "[.filename]#japanese#" +msgstr "[.filename]#japanese#" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:800 +#, no-wrap +msgid "Japanese language support." +msgstr "Поддержка японского языка." + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:803 +#, no-wrap +msgid "[.filename]#java#" +msgstr "[.filename]#java#" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:804 +#, no-wrap +msgid "Software related to the Java(TM) language." +msgstr "Программное обеспечение, связанное с языком Java(TM)." + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:806 +#, no-wrap +msgid "The [.filename]#java# category must not be the only one for a port. Save for ports directly related to the Java language, porters are also encouraged not to use [.filename]#java# as the main category of a port." +msgstr "Категория [.filename]#java# не должна быть единственной для порта. За исключением портов, непосредственно связанных с языком Java, разработчикам также рекомендуется не использовать [.filename]#java# в качестве основной категории для порта." + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:807 +#, no-wrap +msgid "[.filename]#kde#`*`" +msgstr "[.filename]#kde#`*`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:808 +#, no-wrap +msgid "Ports from the https://www.kde.org/[KDE] Project (generic)." +msgstr "Порты проекта https://www.kde.org/[KDE] (общие)." + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:811 +#, no-wrap +msgid "[.filename]#kde-applications#`*`" +msgstr "[.filename]#kde-приложения#`*`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:812 +#, no-wrap +msgid "Applications from the https://www.kde.org/[KDE] Project." +msgstr "Приложения от проекта https://www.kde.org/[KDE]." + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:815 +#, no-wrap +msgid "[.filename]#kde-frameworks#`*`" +msgstr "[.filename]#kde-frameworks#`*`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:816 +#, no-wrap +msgid "Add-on libraries from the https://www.kde.org/[KDE] Project for programming with Qt." +msgstr "Дополнительные библиотеки от проекта https://www.kde.org/[KDE] для программирования с использованием Qt." + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:819 +#, no-wrap +msgid "[.filename]#kde-plasma#`*`" +msgstr "[.filename]#kde-plasma#`*`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:820 +#, no-wrap +msgid "Desktop from the https://www.kde.org/[KDE] Project." +msgstr "Рабочий стол от проекта https://www.kde.org/[KDE]." + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:823 +#, no-wrap +msgid "[.filename]#kld#`*`" +msgstr "[.filename]#kld#`*`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:824 +#, no-wrap +msgid "Kernel loadable modules." +msgstr "Загружаемые модули ядра." + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:827 +#, no-wrap +msgid "[.filename]#korean#" +msgstr "[.filename]#korean#" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:828 +#, no-wrap +msgid "Korean language support." +msgstr "Поддержка корейского языка." + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:831 +#, no-wrap +msgid "[.filename]#lang#" +msgstr "[.filename]#lang#" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:832 +#, no-wrap +msgid "Programming languages." +msgstr "Языки программирования." + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:835 +#, no-wrap +msgid "[.filename]#linux#`*`" +msgstr "[.filename]#linux#`*`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:836 +#, no-wrap +msgid "Linux applications and support utilities." +msgstr "Приложения и вспомогательные утилиты Linux." + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:839 +#, no-wrap +msgid "[.filename]#lisp#`*`" +msgstr "[.filename]#lisp#`*`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:840 +#, no-wrap +msgid "Software related to the Lisp language." +msgstr "Программное обеспечение, связанное с языком Lisp." + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:843 +#, no-wrap +msgid "[.filename]#mail#" +msgstr "[.filename]#mail#" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:844 +#, no-wrap +msgid "Mail software." +msgstr "Почтовое программное обеспечение." + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:847 +#, no-wrap +msgid "[.filename]#mate#`*`" +msgstr "[.filename]#mate#`*`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:848 +#, no-wrap +msgid "Ports related to the MATE desktop environment, a fork of GNOME 2." +msgstr "Порты, связанные с окружением рабочего стола MATE, форком GNOME 2." + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:851 +#, no-wrap +msgid "[.filename]#math#" +msgstr "[.filename]#math#" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:852 +#, no-wrap +msgid "Numerical computation software and other utilities for mathematics." +msgstr "Численные расчеты и другие математические утилиты." + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:855 +#, no-wrap +msgid "[.filename]#mbone#`*`" +msgstr "[.filename]#mbone#`*`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:856 +#, no-wrap +msgid "MBone applications." +msgstr "Приложения MBone." + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:859 +#, no-wrap +msgid "[.filename]#misc#" +msgstr "[.filename]#misc#" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:860 +#, no-wrap +msgid "Miscellaneous utilities" +msgstr "Различные утилиты" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:862 +#, no-wrap +msgid "Things that do not belong anywhere else. If at all possible, try to find a better category for the port than `misc`, as ports tend to be overlooked in here." +msgstr "Вещи, которые не подходят никуда больше. По возможности, попытайтесь найти для порта категорию лучше, чем `misc`, так как порты здесь часто остаются без внимания." + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:863 +#, no-wrap +msgid "[.filename]#multimedia#" +msgstr "[.filename]#multimedia#" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:864 +#, no-wrap +msgid "Multimedia software." +msgstr "Мультимедийное программное обеспечение." + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:867 +#, no-wrap +msgid "[.filename]#net#" +msgstr "[.filename]#net#" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:868 +#, no-wrap +msgid "Miscellaneous networking software." +msgstr "Различное сетевое программное обеспечение." + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:871 +#, no-wrap +msgid "[.filename]#net-im#" +msgstr "[.filename]#net-im#" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:872 +#, no-wrap +msgid "Instant messaging software." +msgstr "Программное обеспечение для обмена мгновенными сообщениями." + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:875 +#, no-wrap +msgid "[.filename]#net-mgmt#" +msgstr "[.filename]#net-mgmt#" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:876 +#, no-wrap +msgid "Networking management software." +msgstr "Программное обеспечение для управления сетями." + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:879 +#, no-wrap +msgid "[.filename]#net-p2p#" +msgstr "[.filename]#net-p2p#" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:880 +#, no-wrap +msgid "Peer to peer network applications." +msgstr "Одноранговые сетевые приложения." + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:883 +#, no-wrap +msgid "[.filename]#net-vpn#`*`" +msgstr "[.filename]#сеть-vpn#`*`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:884 +#, no-wrap +msgid "Virtual Private Network applications." +msgstr "Виртуальные частные сети." + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:887 +#, no-wrap +msgid "[.filename]#news#" +msgstr "[.filename]#news#" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:888 +#, no-wrap +msgid "USENET news software." +msgstr "Программное обеспечение для USENET-новостей." + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:891 +#, no-wrap +msgid "[.filename]#parallel#`*`" +msgstr "[.filename]#parallel#`*`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:892 +#, no-wrap +msgid "Applications dealing with parallelism in computing." +msgstr "Приложения, работающие с параллелизмом в вычислениях." + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:895 +#, no-wrap +msgid "[.filename]#pear#`*`" +msgstr "[.filename]#pear#`*`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:896 +#, no-wrap +msgid "Ports related to the Pear PHP framework." +msgstr "Порты, связанные с PHP-фреймворком Pear." + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:899 +#, no-wrap +msgid "[.filename]#perl5#`*`" +msgstr "[.filename]#perl5#`*`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:900 +#, no-wrap +msgid "Ports that require Perl version 5 to run." +msgstr "Порты, требующие Perl версии 5 для работы." + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:903 +#, no-wrap +msgid "[.filename]#plan9#`*`" +msgstr "[.filename]#plan9#`*`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:904 +#, no-wrap +msgid "Various programs from https://9p.io/wiki/plan9/Download/index.html[Plan9]." +msgstr "Различные программы с https://9p.io/wiki/plan9/Download/index.html[Plan9]." + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:907 +#, no-wrap +msgid "[.filename]#polish#" +msgstr "[.filename]#polish#" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:908 +#, no-wrap +msgid "Polish language support." +msgstr "Поддержка польского языка." + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:911 +#, no-wrap +msgid "[.filename]#ports-mgmt#" +msgstr "[.filename]#ports-mgmt#" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:912 +#, no-wrap +msgid "Ports for managing, installing and developing FreeBSD ports and packages." +msgstr "Порты для управления, установки и разработки портов и пакетов FreeBSD." + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:915 +#, no-wrap +msgid "[.filename]#portuguese#" +msgstr "[.filename]#portuguese#" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:916 +#, no-wrap +msgid "Portuguese language support." +msgstr "Поддержка португальского языка." + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:919 +#, no-wrap +msgid "[.filename]#print#" +msgstr "[.filename]#print#" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:920 +#, no-wrap +msgid "Printing software." +msgstr "Программное обеспечение для печати." + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:922 +#, no-wrap +msgid "Desktop publishing tools (previewers, etc.) belong here too." +msgstr "Инструменты для настольных издательских систем (превьюеры и т. д.) также относятся сюда." + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:923 +#, no-wrap +msgid "[.filename]#python#`*`" +msgstr "[.filename]#python#`*`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:924 +#, no-wrap +msgid "Software related to the https://www.python.org/[Python] language." +msgstr "Программное обеспечение, связанное с языком https://www.python.org/[Python]." + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:927 +#, no-wrap +msgid "[.filename]#ruby#`*`" +msgstr "[.filename]#ruby#`*`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:928 +#, no-wrap +msgid "Software related to the https://www.ruby-lang.org/[Ruby] language." +msgstr "Программное обеспечение, связанное с языком https://www.ruby-lang.org/[Ruby]." + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:931 +#, no-wrap +msgid "[.filename]#rubygems#`*`" +msgstr "[.filename]#rubygems#`*`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:932 +#, no-wrap +msgid "Ports of https://www.rubygems.org/[RubyGems] packages." +msgstr "Порты пакетов https://www.rubygems.org/[RubyGems]." + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:935 +#, no-wrap +msgid "[.filename]#russian#" +msgstr "[.filename]#russian#" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:936 +#, no-wrap +msgid "Russian language support." +msgstr "Поддержка русского языка." + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:939 +#, no-wrap +msgid "[.filename]#scheme#`*`" +msgstr "[.filename]#scheme#`*`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:940 +#, no-wrap +msgid "Software related to the Scheme language." +msgstr "Программное обеспечение, связанное с языком Scheme." + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:943 +#, no-wrap +msgid "[.filename]#science#" +msgstr "[.filename]#science#" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:944 +#, no-wrap +msgid "Scientific ports that do not fit into other categories such as [.filename]#astro#, [.filename]#biology# and [.filename]#math#." +msgstr "Научные порты, которые не входят в другие категории, такие как [.filename]#astro#, [.filename]#biology# и [.filename]#math#." + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:947 +#, no-wrap +msgid "[.filename]#security#" +msgstr "[.filename]#security#" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:948 +#, no-wrap +msgid "Security utilities." +msgstr "Средства обеспечения безопасности." + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:951 +#, no-wrap +msgid "[.filename]#shells#" +msgstr "[.filename]#shells#" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:952 +#, no-wrap +msgid "Command line shells." +msgstr "Командные оболочки." + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:955 +#, no-wrap +msgid "[.filename]#spanish#`*`" +msgstr "[.filename]#spanish#`*`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:956 +#, no-wrap +msgid "Spanish language support." +msgstr "Поддержка испанского языка." + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:959 +#, no-wrap +msgid "[.filename]#sysutils#" +msgstr "[.filename]#sysutils#" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:960 +#, no-wrap +msgid "System utilities." +msgstr "Системные утилиты." + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:963 +#, no-wrap +msgid "[.filename]#tcl#`*`" +msgstr "[.filename]#tcl#`*`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:964 +#, no-wrap +msgid "Ports that use Tcl to run." +msgstr "Порты, использующие Tcl для запуска." + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:967 +#, no-wrap +msgid "[.filename]#textproc#" +msgstr "[.filename]#textproc#" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:968 +#, no-wrap +msgid "Text processing utilities." +msgstr "Средства обработки текста." + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:970 +#, no-wrap +msgid "It does not include desktop publishing tools, which go to [.filename]#print#." +msgstr "Он не включает инструменты для настольных издательских систем, которые помещаются в [.filename]#print#." + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:971 +#, no-wrap +msgid "[.filename]#tk#`*`" +msgstr "[.filename]#tk#`*`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:972 +#, no-wrap +msgid "Ports that use Tk to run." +msgstr "Порты, использующие Tk для работы." + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:975 +#, no-wrap +msgid "[.filename]#ukrainian#" +msgstr "[.filename]#ukrainian#" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:976 +#, no-wrap +msgid "Ukrainian language support." +msgstr "Поддержка украинского языка." + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:979 +#, no-wrap +msgid "[.filename]#vietnamese#" +msgstr "[.filename]#vietnamese#" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:980 +#, no-wrap +msgid "Vietnamese language support." +msgstr "Поддержка вьетнамского языка." + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:983 +#, no-wrap +msgid "[.filename]#wayland#`*`" +msgstr "[.filename]#wayland#`*`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:984 +#, no-wrap +msgid "Ports to support the Wayland display server." +msgstr "Порты для поддержки сервера дисплея Wayland." + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:987 +#, no-wrap +msgid "[.filename]#windowmaker#`*`" +msgstr "[.filename]#windowmaker#`*`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:988 +#, no-wrap +msgid "Ports to support the Window Maker window manager." +msgstr "Порты для поддержки оконного менеджера Window Maker." + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:991 +#, no-wrap +msgid "[.filename]#www#" +msgstr "[.filename]#www#" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:992 +#, no-wrap +msgid "Software related to the World Wide Web." +msgstr "Программное обеспечение, связанное с Всемирной паутиной." + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:994 +#, no-wrap +msgid "HTML language support belongs here too." +msgstr "Поддержка языка HTML также относится сюда." + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:995 +#, no-wrap +msgid "[.filename]#x11#" +msgstr "[.filename]#x11#" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:996 +#, no-wrap +msgid "The X Window System and friends." +msgstr "Система X Window и связанные компоненты." + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:998 +#, no-wrap +msgid "This category is only for software that directly supports the window system. Do not put regular X applications here. Most of them go into other [.filename]#x11-*# categories (see below)." +msgstr "Эта категория предназначена только для программного обеспечения, которое напрямую поддерживает оконную систему. Не помещайте сюда обычные X-приложения. Большинство из них относятся к другим категориям [.filename]#x11-*# (см. ниже)." + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:999 +#, no-wrap +msgid "[.filename]#x11-clocks#" +msgstr "[.filename]#x11-clocks#" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1000 +#, no-wrap +msgid "X11 clocks." +msgstr "Часы X11." + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1003 +#, no-wrap +msgid "[.filename]#x11-drivers#" +msgstr "[.filename]#x11-drivers#" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1004 +#, no-wrap +msgid "X11 drivers." +msgstr "Драйверы X11." + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1007 +#, no-wrap +msgid "[.filename]#x11-fm#" +msgstr "[.filename]#x11-fm#" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1008 +#, no-wrap +msgid "X11 file managers." +msgstr "Менеджеры файлов X11." + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1011 +#, no-wrap +msgid "[.filename]#x11-fonts#" +msgstr "[.filename]#x11-fonts#" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1012 +#, no-wrap +msgid "X11 fonts and font utilities." +msgstr "Шрифты и утилиты для работы со шрифтами в X11." + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1015 +#, no-wrap +msgid "[.filename]#x11-servers#" +msgstr "[.filename]#x11-servers#" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1016 +#, no-wrap +msgid "X11 servers." +msgstr "Серверы X11." + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1019 +#, no-wrap +msgid "[.filename]#x11-themes#" +msgstr "[.filename]#x11-themes#" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1020 +#, no-wrap +msgid "X11 themes." +msgstr "Темы X11." + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1023 +#, no-wrap +msgid "[.filename]#x11-toolkits#" +msgstr "[.filename]#x11-toolkits#" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1024 +#, no-wrap +msgid "X11 toolkits." +msgstr "Инструментарии X11." + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1027 +#, no-wrap +msgid "[.filename]#x11-wm#" +msgstr "[.filename]#x11-wm#" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1028 +#, no-wrap +msgid "X11 window managers." +msgstr "Оконные менеджеры X11." + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1031 +#, no-wrap +msgid "[.filename]#xfce#`*`" +msgstr "[.filename]#xfce#`*`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1032 +#, no-wrap +msgid "Ports related to the https://www.xfce.org/[Xfce] desktop environment." +msgstr "Порты, связанные с окружением рабочего стола https://www.xfce.org/[Xfce]." + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1035 +#, no-wrap +msgid "[.filename]#zope#`*`" +msgstr "[.filename]#zope#`*`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1036 +#, no-wrap +msgid "https://www.zope.org/[Zope] support." +msgstr "https://www.zope.org/[Zope] поддержка." + +#. type: Title === +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1040 +#, no-wrap +msgid "Choosing the Right Category" +msgstr "Выбор подходящей категории" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1045 +msgid "" +"As many of the categories overlap, choosing which of the categories will be " +"the primary category of the port can be tedious. There are several rules " +"that govern this issue. Here is the list of priorities, in decreasing order " +"of precedence:" +msgstr "" +"Поскольку многие категории пересекаются, выбор основной категории для порта " +"может быть утомительным. Существует несколько правил, регулирующих этот " +"вопрос. Вот список приоритетов в порядке убывания важности:" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1048 +msgid "" +"The first category must be a physical category (see " +"crossref:makefiles[porting-categories,above]). This is necessary to make the " +"packaging work. Virtual categories and physical categories may be intermixed " +"after that." +msgstr "" +"Первая категория должна быть физической (см. crossref:makefiles[porting-" +"categories,выше]). Это необходимо для работы упаковки. Виртуальные категории " +"и физические категории могут чередоваться после этого." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1049 +msgid "" +"Language specific categories always come first. For example, if the port " +"installs Japanese X11 fonts, then the `CATEGORIES` line would read " +"[.filename]#japanese x11-fonts#." +msgstr "" +"Языковые категории всегда указываются первыми. Например, если порт " +"устанавливает японские шрифты для X11, то строка `CATEGORIES` будет " +"выглядеть так: [.filename]#japanese x11-fonts#." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1050 +msgid "" +"Specific categories are listed before less-specific ones. For instance, an " +"HTML editor is listed as [.filename]#www editors#, not the other way around. " +"Also, do not list [.filename]#net# when the port belongs to any of " +"[.filename]#irc#, [.filename]#mail#, [.filename]#news#, " +"[.filename]#security#, or [.filename]#www#, as [.filename]#net# is included " +"implicitly." +msgstr "" +"Конкретные категории перечислены перед менее специфичными. Например, HTML-" +"редактор указывается как [.filename]#www editors#, а не наоборот. Также не " +"следует указывать [.filename]#net#, если порт принадлежит к любой из " +"категорий [.filename]#irc#, [.filename]#mail#, [.filename]#news#, " +"[.filename]#security# или [.filename]#www#, так как [.filename]#net# " +"подразумевается автоматически." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1051 +msgid "" +"[.filename]#x11# is used as a secondary category only when the primary " +"category is a natural language. In particular, do not put [.filename]#x11# " +"in the category line for X applications." +msgstr "" +"[.filename]#x11# используется как вторичная категория только в случае, когда " +"основной категорией указан естественный язык. В частности, не указывайте " +"[.filename]#x11# в строке категории для X-приложений." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1052 +msgid "" +"Emacs modes are placed in the same ports category as the application " +"supported by the mode, not in [.filename]#editors#. For example, an Emacs " +"mode to edit source files of some programming language goes into " +"[.filename]#lang#." +msgstr "" +"Режимы Emacs размещаются в той же категории портов, что и приложение, " +"поддерживаемое данным режимом, а не в [.filename]#editors#. Например, режим " +"Emacs для редактирования исходных файлов какого-либо языка программирования " +"попадает в [.filename]#lang#." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1053 +msgid "" +"Ports installing loadable kernel modules also have the virtual category " +"[.filename]#kld# in their `CATEGORIES` line. This is one of the things " +"handled automatically by adding `USES=kmod`." +msgstr "" +"Порты, устанавливающие загружаемые модули ядра, также имеют виртуальную " +"категорию [.filename]#kld# в строке `CATEGORIES`. Это одна из вещей, " +"автоматически обрабатываемых при добавлении `USES=kmod`." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1054 +msgid "" +"[.filename]#misc# does not appear with any other non-virtual category. If " +"there is `misc` with something else in `CATEGORIES`, that means `misc` can " +"safely be deleted and the port placed only in the other subdirectory." +msgstr "" +"[.filename]#misc# не встречается вместе с другими невиртуальными " +"категориями. Если `misc` указан вместе с чем-то еще в `CATEGORIES`, это " +"означает, что `misc` можно безопасно удалить, а порт разместить только в " +"другом подкаталоге." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1055 +msgid "" +"If the port truly does not belong anywhere else, put it in [.filename]#misc#." +msgstr "" +"Если порт действительно не подходит никуда больше, поместите его в " +"[.filename]#misc#." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1059 +msgid "" +"If the category is not clearly defined, please put a comment to that effect " +"in the https://bugs.freebsd.org/submit/[port submission] in the bug database " +"so we can discuss it before we import it. As a committer, send a note to " +"the {freebsd-ports} so we can discuss it first. Too often, new ports are " +"imported to the wrong category only to be moved right away." +msgstr "" +"Если категория не определена четко, пожалуйста, укажите это в комментарии " +"при https://bugs.freebsd.org/submit/[отправке порта] в баг-трекере, чтобы мы " +"могли обсудить её перед импортом. Как коммиттер, отправьте сообщение в " +"рассылку {freebsd-ports}, чтобы мы сначала обсудили это. Слишком часто новые " +"порты импортируются в неправильную категорию, после чего их сразу же " +"приходится перемещать." + +#. type: Title === +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1061 +#, no-wrap +msgid "Proposing a New Category" +msgstr "Предложение новой категории" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1066 +msgid "" +"As the Ports Collection has grown over time, various new categories have " +"been introduced. New categories can either be _virtual_ categories-those " +"that do not have a corresponding subdirectory in the ports tree- or " +"_physical_ categories-those that do. This section discusses the issues " +"involved in creating a new physical category. Read it thoroughly before " +"proposing a new one." +msgstr "" +"По мере роста Коллекции портов со временем были введены различные новые " +"категории. Новые категории могут быть _виртуальными_ — те, у которых нет " +"соответствующего подкаталога в дереве портов, или _физическими_ — те, у " +"которых он есть. В этом разделе обсуждаются вопросы, связанные с созданием " +"новой физической категории. Внимательно ознакомьтесь с ним, прежде чем " +"предлагать новую." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1068 +msgid "" +"Our existing practice has been to avoid creating a new physical category " +"unless either a large number of ports would logically belong to it, or the " +"ports that would belong to it are a logically distinct group that is of " +"limited general interest (for instance, categories related to spoken human " +"languages), or preferably both." +msgstr "" +"Наша текущая практика заключается в том, чтобы избегать создания новой " +"физической категории, если только либо большое количество портов логически " +"принадлежит к ней, либо порты, которые к ней относятся, представляют собой " +"логически обособленную группу, представляющую ограниченный общий интерес " +"(например, категории, связанные с разговорными человеческими языками), или, " +"желательно, оба условия одновременно." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1072 +msgid "" +"The rationale for this is that such a change creates a extref:{committers-" +"guide}[fair amount of work, ports] for both the committers and also for all " +"users who track changes to the Ports Collection. In addition, proposed " +"category changes just naturally seem to attract controversy. (Perhaps this " +"is because there is no clear consensus on when a category is \"too big\", " +"nor whether categories should lend themselves to browsing (and thus what " +"number of categories would be an ideal number), and so forth.)" +msgstr "" +"Обоснование этого заключается в том, что такое изменение создает extref:" +"{committers-guide}[значительный объем работы, ports] как для коммиттеров, " +"так и для всех пользователей, которые отслеживают изменения в Коллекции " +"портов. Кроме того, предлагаемые изменения категорий, как правило, вызывают " +"споры. (Возможно, это связано с отсутствием четкого консенсуса относительно " +"того, когда категория становится «слишком большой», а также относительно " +"того, должны ли категории способствовать удобству просмотра (и, " +"следовательно, какое количество категорий было бы идеальным), и так далее.)" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1074 +msgid "Here is the procedure:" +msgstr "Вот процедура:" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1077 +msgid "" +"Propose the new category on {freebsd-ports}. Include a detailed rationale " +"for the new category, including why the existing categories are not " +"sufficient, and the list of existing ports proposed to move. (If there are " +"new ports pending in Bugzilla that would fit this category, list them too.) " +"If you are the maintainer and/or submitter, respectively, mention that as it " +"may help the case." +msgstr "" +"Предложите новую категорию на {freebsd-ports}. Включите подробное " +"обоснование для новой категории, объясните, почему существующие категории " +"недостаточны, и укажите список существующих портов, предлагаемых к " +"перемещению. (Если в Bugzilla есть ожидающие рассмотрения новые порты, " +"которые подходят под эту категорию, также перечислите их.) Если вы являетесь " +"сопровождающим и/или подающим предложение, укажите это, так как это может " +"помочь в рассмотрении." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1078 +msgid "Participate in the discussion." +msgstr "Участвуйте в обсуждении." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1079 +msgid "" +"If it seems that there is support for the idea, file a PR which includes " +"both the rationale and the list of existing ports that need to be moved. " +"Ideally, this PR would also include these patches:" +msgstr "" +"Если кажется, что идея находит поддержку, оформите PR, включающий как " +"обоснование, так и список существующих портов, которые необходимо " +"переместить. В идеале, этот PR также должен содержать следующие исправления:" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1081 +msgid "[.filename]##Makefile##s for the new ports once they are repocopied" +msgstr "" +"[.filename]##Makefile## для новых портов после копирования их репозитория" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1082 +msgid "[.filename]#Makefile# for the new category" +msgstr "[.filename]#Makefile# для новой категории" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1083 +msgid "[.filename]#Makefile# for the old ports' categories" +msgstr "[.filename]#Makefile# для старых категорий портов" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1084 +msgid "[.filename]##Makefile##s for ports that depend on the old ports" +msgstr "[.filename]##Makefile## для портов, зависящих от старых портов" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1085 +msgid "" +"(for extra credit, include the other files that have to change, as per the " +"procedure in the Committer's Guide.)" +msgstr "" +"(для дополнительной оценки включите другие файлы, которые необходимо " +"изменить, в соответствии с процедурой, описанной в Руководстве коммиттера.)" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1087 +msgid "" +"Since it affects the ports infrastructure and involves moving and patching " +"many ports but also possibly running regression tests on the build cluster, " +"assign the PR to the {portmgr}." +msgstr "" +"Поскольку это затрагивает инфраструктуру портов и включает перемещение и " +"исправление многих портов, а также, возможно, проведение регрессионных " +"тестов на сборочном кластере, назначьте PR для {portmgr}." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1088 +msgid "" +"If that PR is approved, a committer will need to follow the rest of the " +"procedure that is extref:{committers-guide}[outlined in the Committer's " +"Guide, ports]." +msgstr "" +"Если этот PR будет одобрен, коммиттер должен будет выполнить оставшуюся " +"часть процедуры, extref:{committers-guide}[описанной в Руководстве " +"коммиттера,ports]." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1091 +msgid "" +"Proposing a new virtual category is similar to the above but much less " +"involved, since no ports will actually have to move. In this case, the only " +"patches to include in the PR would be those to add the new category to " +"`CATEGORIES` of the affected ports." +msgstr "" +"Предложение новой виртуальной категории аналогично описанному выше, но " +"гораздо менее трудоёмко, так как фактически не потребуется перемещать порты. " +"В этом случае единственные патчи, которые нужно включить в PR, — это " +"добавление новой категории в `CATEGORIES` затронутых портов." + +#. type: Title === +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1093 +#, no-wrap +msgid "Proposing Reorganizing All the Categories" +msgstr "Предложение о реорганизации всех категорий" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1099 +msgid "" +"Occasionally someone proposes reorganizing the categories with either a 2-" +"level structure, or some other kind of keyword structure. To date, nothing " +"has come of any of these proposals because, while they are very easy to " +"make, the effort involved to retrofit the entire existing ports collection " +"with any kind of reorganization is daunting to say the very least. Please " +"read the history of these proposals in the mailing list archives before " +"posting this idea. Furthermore, be prepared to be challenged to offer a " +"working prototype." +msgstr "" +"Изредка кто-то предлагает реорганизовать категории, используя либо " +"двухуровневую структуру, либо какую-либо другую структуру ключевых слов. На " +"сегодняшний день ни одно из этих предложений не было реализовано, потому " +"что, хотя их очень легко выдвинуть, усилия, необходимые для переработки всей " +"существующей коллекции портов в рамках любой реорганизации, пугают, мягко " +"говоря. Пожалуйста, ознакомьтесь с историей этих предложений в архивах " +"списка рассылки, прежде чем публиковать эту идею. Более того, будьте готовы " +"к тому, что вас попросят предоставить рабочий прототип." + +#. type: Title == +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1101 +#, no-wrap +msgid "The Distribution Files" +msgstr "Файлы дистрибутива" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1104 +msgid "" +"The second part of the [.filename]#Makefile# describes the files that must " +"be downloaded to build the port, and where they can be downloaded." +msgstr "" +"Вторая часть [.filename]#Makefile# описывает файлы, которые необходимо " +"загрузить для сборки порта, и места, откуда их можно скачать." + +#. type: Title === +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1106 +#, no-wrap +msgid "`DISTNAME`" +msgstr "`DISTNAME`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1113 +msgid "" +"`DISTNAME` is the name of the port as called by the authors of the " +"software. `DISTNAME` defaults to `${PORTNAME}-${DISTVERSIONPREFIX}$" +"{DISTVERSION}${DISTVERSIONSUFFIX}`, and if not set, `DISTVERSION` defaults " +"to `${PORTVERSION}` so override `DISTNAME` only if necessary. `DISTNAME` is " +"only used in two places. First, the distribution file list (`DISTFILES`) " +"defaults to `${DISTNAME}${EXTRACT_SUFX}`. Second, the distribution file is " +"expected to extract into a subdirectory named `WRKSRC`, which defaults to " +"[.filename]#work/${DISTNAME}#." +msgstr "" +"`DISTNAME` — это имя порта, используемое авторами программного обеспечения. " +"По умолчанию `DISTNAME` имеет значение `${PORTNAME}-${DISTVERSIONPREFIX}$" +"{DISTVERSION}${DISTVERSIONSUFFIX}`, а если не задано, `DISTVERSION` по " +"умолчанию принимает значение `${PORTVERSION}`, поэтому переопределяйте " +"`DISTNAME` только при необходимости. `DISTNAME` используется только в двух " +"случаях. Во-первых, список файлов дистрибутива (`DISTFILES`) по умолчанию " +"имеет значение `${DISTNAME}${EXTRACT_SUFX}`. Во-вторых, ожидается, что файл " +"дистрибутива распакуется в подкаталог с именем `WRKSRC`, который по " +"умолчанию равен [.filename]#work/${DISTNAME}#." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1116 +msgid "" +"Some vendor's distribution names which do not fit into the `${PORTNAME}-$" +"{PORTVERSION}`-scheme can be handled automatically by setting " +"`DISTVERSIONPREFIX`, `DISTVERSION`, and `DISTVERSIONSUFFIX`. `PORTVERSION` " +"will be derived from `DISTVERSION` automatically." +msgstr "" +"Некоторые названия дистрибутивов от поставщиков, которые не соответствуют " +"схеме `${PORTNAME}-${PORTVERSION}`, могут обрабатываться автоматически путем " +"установки `DISTVERSIONPREFIX`, `DISTVERSION` и `DISTVERSIONSUFFIX`. " +"`PORTVERSION` будет автоматически вычисляться из `DISTVERSION`." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1121 +msgid "" +"Only one of `PORTVERSION` and `DISTVERSION` can be set at a time. If " +"`DISTVERSION` does not derive a correct `PORTVERSION`, do not use " +"`DISTVERSION`." +msgstr "" +"Только одна из переменных `PORTVERSION` и `DISTVERSION` может быть " +"установлена одновременно. Если `DISTVERSION` не определяет корректную " +"`PORTVERSION`, не используйте `DISTVERSION`." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1125 +msgid "" +"If the upstream version scheme can be derived into a ports-compatible " +"version scheme, set some variable to the upstream version, _do not_ use " +"`DISTVERSION` as the variable name. Set `PORTVERSION` to the computed " +"version based on the variable you created, and set `DISTNAME` accordingly." +msgstr "" +"Если схема версий исходного проекта может быть преобразована в схему, " +"совместимую с портами, установите некоторую переменную в версию исходного " +"проекта, _не используйте_ имя переменной `DISTVERSION`. Установите " +"`PORTVERSION` в вычисленную версию на основе созданной вами переменной и " +"задайте `DISTNAME` соответствующим образом." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1127 +msgid "" +"If the upstream version scheme cannot easily be coerced into a ports-" +"compatible value, set `PORTVERSION` to a sensible value, and set `DISTNAME` " +"with `PORTNAME` with the verbatim upstream version." +msgstr "" +"Если схема версионирования вышестоящего проекта не может быть легко " +"преобразована в значение, совместимое с портами, установите `PORTVERSION` в " +"разумное значение и задайте `DISTNAME` как `PORTNAME` с дословной версией " +"вышестоящего проекта." + +#. type: Block title +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1129 +#, no-wrap +msgid "Deriving `PORTVERSION` Manually" +msgstr "Получение `PORTVERSION` вручную" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1135 +msgid "" +"BIND9 uses a version scheme that is not compatible with the ports versions " +"(it has `-` in its versions) and cannot be derived using `DISTVERSION` " +"because after the 9.9.9 release, it will release a \"patchlevels\" in the " +"form of `9.9.9-P1`. DISTVERSION would translate that into `9.9.9.p1`, " +"which, in the ports versioning scheme means 9.9.9 pre-release 1, which is " +"before 9.9.9 and not after. So `PORTVERSION` is manually derived from an " +"`ISCVERSION` variable to output `9.9.9p1`." +msgstr "" +"BIND9 использует схему версионирования, несовместимую с версиями портов (в " +"версиях используется `-`), и её нельзя получить с помощью `DISTVERSION`, так " +"как после выпуска 9.9.9 выходят «уровни исправлений» в формате `9.9.9-P1`. " +"`DISTVERSION` преобразует это в `9.9.9.p1`, что в схеме версионирования " +"портов означает 9.9.9 pre-release 1, то есть версию, предшествующую 9.9.9, а " +"не следующую за ней. Поэтому `PORTVERSION` вручную формируется из переменной " +"`ISCVERSION`, чтобы получить `9.9.9p1`." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1137 +msgid "" +"The order into which the ports framework, and pkg, will sort versions is " +"checked using the `-t` argument of man:pkg-version[8]:" +msgstr "" +"Порядок, в котором система портов и pkg будут сортировать версии, " +"проверяется с помощью аргумента `-t` из man:pkg-version[8]:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1144 +#, no-wrap +msgid "" +"% pkg version -t 9.9.9 9.9.9.p1\n" +"> <.>\n" +"% pkg version -t 9.9.9 9.9.9p1\n" +"< <.>\n" +msgstr "" +"% pkg version -t 9.9.9 9.9.9.p1\n" +"> <.>\n" +"% pkg version -t 9.9.9 9.9.9p1\n" +"< <.>\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1147 +msgid "" +"The `>` sign means that the first argument passed to `-t` is greater than " +"the second argument. `9.9.9` is after `9.9.9.p1`." +msgstr "" +"Знак `>` означает, что первый аргумент, переданный в `-t`, больше второго " +"аргумента. `9.9.9` находится после `9.9.9.p1`." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1148 +msgid "" +"The `<` sign means that the first argument passed to `-t` is less than the " +"second argument. `9.9.9` is before `9.9.9p1`." +msgstr "" +"Знак `<` означает, что первый аргумент, переданный в `-t`, меньше второго " +"аргумента. `9.9.9` находится перед `9.9.9p1`." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1150 +msgid "" +"In the port [.filename]#Makefile#, for example package:dns/bind99[], it is " +"achieved by:" +msgstr "" +"В файле [.filename]#Makefile# порта, например package:dns/bind99[], это " +"достигается с помощью:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1159 +#, no-wrap +msgid "" +"PORTNAME=\tbind\n" +"PORTVERSION=\t${ISCVERSION:S/-P/P/:S/b/.b/:S/a/.a/:S/rc/.rc/}\n" +"CATEGORIES=\tdns net\n" +"MASTER_SITES=\tISC/bind9/${ISCVERSION}\n" +"PKGNAMESUFFIX=\t99\n" +"DISTNAME=\t${PORTNAME}-${ISCVERSION}\n" +msgstr "" +"PORTNAME=\tbind\n" +"PORTVERSION=\t${ISCVERSION:S/-P/P/:S/b/.b/:S/a/.a/:S/rc/.rc/}\n" +"CATEGORIES=\tdns net\n" +"MASTER_SITES=\tISC/bind9/${ISCVERSION}\n" +"PKGNAMESUFFIX=\t99\n" +"DISTNAME=\t${PORTNAME}-${ISCVERSION}\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1163 +#, no-wrap +msgid "" +"MAINTAINER=\tmat@FreeBSD.org\n" +"COMMENT=\tBIND DNS suite with updated DNSSEC and DNS64\n" +"WWW=\t\thttps://www.isc.org/bind/\n" +msgstr "" +"MAINTAINER=\tmat@FreeBSD.org\n" +"COMMENT=\tBIND DNS suite with updated DNSSEC and DNS64\n" +"WWW=\t\thttps://www.isc.org/bind/\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1165 +#, no-wrap +msgid "LICENSE=\tISCL\n" +msgstr "LICENSE=\tISCL\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1168 +#, no-wrap +msgid "" +"# ISC releases things like 9.8.0-P1 or 9.8.1rc1, which our versioning does not like\n" +"ISCVERSION=\t9.9.9-P6\n" +msgstr "" +"# ISC releases things like 9.8.0-P1 or 9.8.1rc1, which our versioning does not like\n" +"ISCVERSION=\t9.9.9-P6\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1174 +msgid "" +"Define upstream version in `ISCVERSION`, with a comment saying _why_ it is " +"needed. Use `ISCVERSION` to get a ports-compatible `PORTVERSION`. Use " +"`ISCVERSION` directly to get the correct URL for fetching the distribution " +"file. Use `ISCVERSION` directly to name the distribution file." +msgstr "" +"Определите версию вышестоящего пакета в `ISCVERSION`, с комментарием, " +"объясняющим, _почему_ это необходимо. Используйте `ISCVERSION` для получения " +"совместимого с портами `PORTVERSION`. Используйте `ISCVERSION` напрямую для " +"получения правильного URL для загрузки файла дистрибутива. Используйте " +"`ISCVERSION` напрямую для именования дистрибутивного файла." + +#. type: Block title +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1177 +#, no-wrap +msgid "Derive `DISTNAME` from `PORTVERSION`" +msgstr "Получить `DISTNAME` из `PORTVERSION`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1181 +msgid "" +"From time to time, the distribution file name has little or no relation to " +"the version of the software." +msgstr "" +"Время от времени имя файла дистрибутива имеет мало отношения или вообще " +"никакого отношения к версии программного обеспечения." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1183 +msgid "" +"In package:comms/kermit[], only the last element of the version is present " +"in the distribution file:" +msgstr "" +"В пакете package:comms/kermit[], в файле дистрибутива присутствует только " +"последний элемент версии:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1191 +#, no-wrap +msgid "" +"PORTNAME=\tkermit\n" +"PORTVERSION=\t9.0.304\n" +"CATEGORIES=\tcomms ftp net\n" +"MASTER_SITES=\tftp://ftp.kermitproject.org/kermit/test/tar/\n" +"DISTNAME=\tcku${PORTVERSION:E}-dev20\n" +msgstr "" +"PORTNAME=\tkermit\n" +"PORTVERSION=\t9.0.304\n" +"CATEGORIES=\tcomms ftp net\n" +"MASTER_SITES=\tftp://ftp.kermitproject.org/kermit/test/tar/\n" +"DISTNAME=\tcku${PORTVERSION:E}-dev20\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1195 +msgid "" +"The `:E` man:make[1] modifier returns the suffix of the variable, in this " +"case, `304`. The distribution file is correctly generated as `cku304-" +"dev20.tar.gz`." +msgstr "" +"Модификатор `:E` man:make[1] возвращает суффикс переменной, в данном случае " +"`304`. Файл дистрибутива корректно создаётся как `cku304-dev20.tar.gz`." + +#. type: Block title +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1198 +#, no-wrap +msgid "Exotic Case 1" +msgstr "Экзотический случай 1" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1202 +msgid "" +"Sometimes, there is no relation between the software name, its version, and " +"the distribution file it is distributed in." +msgstr "" +"Иногда нет связи между названием программы, её версией и файлом " +"дистрибутива, в котором она распространяется." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1204 +msgid "From package:audio/libworkman[]:" +msgstr "Из пакета package:audio/libworkman[]:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1212 +#, no-wrap +msgid "" +"PORTNAME= libworkman\n" +"PORTVERSION= 1.4\n" +"CATEGORIES= audio\n" +"MASTER_SITES= LOCAL/jim\n" +"DISTNAME= ${PORTNAME}-1999-06-20\n" +msgstr "" +"PORTNAME= libworkman\n" +"PORTVERSION= 1.4\n" +"CATEGORIES= audio\n" +"MASTER_SITES= LOCAL/jim\n" +"DISTNAME= ${PORTNAME}-1999-06-20\n" + +#. type: Block title +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1217 +#, no-wrap +msgid "Exotic Case 2" +msgstr "Экзотический случай 2" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1222 +msgid "" +"In package:comms/librs232[], the distribution file is not versioned, so " +"using crossref:makefiles[makefile-dist_subdir,`DIST_SUBDIR`] is needed:" +msgstr "" +"В пакете package:comms/librs232[] файл дистрибутива не имеет версии, поэтому " +"необходимо использовать crossref:makefiles[makefile-" +"dist_subdir,`DIST_SUBDIR`]:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1231 +#, no-wrap +msgid "" +"PORTNAME= librs232\n" +"PORTVERSION= 20160710\n" +"CATEGORIES= comms\n" +"MASTER_SITES= http://www.teuniz.net/RS-232/\n" +"DISTNAME= RS-232\n" +"DIST_SUBDIR=\t${PORTNAME}-${PORTVERSION}\n" +msgstr "" +"PORTNAME= librs232\n" +"PORTVERSION= 20160710\n" +"CATEGORIES= comms\n" +"MASTER_SITES= http://www.teuniz.net/RS-232/\n" +"DISTNAME= RS-232\n" +"DIST_SUBDIR=\t${PORTNAME}-${PORTVERSION}\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1239 +msgid "" +"`PKGNAMEPREFIX` and `PKGNAMESUFFIX` do not affect `DISTNAME`. Also note " +"that if `WRKSRC` is equal to [.filename]#${WRKDIR}/${DISTNAME}# while the " +"original source archive is named something other than `${PORTNAME}-$" +"{PORTVERSION}${EXTRACT_SUFX}`, leave `DISTNAME` alone- defining only " +"`DISTFILES` is easier than both `DISTNAME` and `WRKSRC` (and possibly " +"`EXTRACT_SUFX`)." +msgstr "" +"`PKGNAMEPREFIX` и `PKGNAMESUFFIX` не влияют на `DISTNAME`. Также обратите " +"внимание, что если `WRKSRC` равно [.filename]#${WRKDIR}/${DISTNAME}#, а " +"исходный архив с исходным кодом называется иначе, чем `${PORTNAME}-$" +"{PORTVERSION}${EXTRACT_SUFX}`, оставьте `DISTNAME` без изменений — " +"определение только `DISTFILES` проще, чем определение и `DISTNAME`, и " +"`WRKSRC` (а возможно, и `EXTRACT_SUFX`)." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1242 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4897 +#, no-wrap +msgid "`MASTER_SITES`" +msgstr "`MASTER_SITES`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1246 +msgid "" +"Record the directory part of the FTP/HTTP-URL pointing at the original " +"tarball in `MASTER_SITES`. Do not forget the trailing slash ([.filename]#/" +"#)!" +msgstr "" +"Запишите именем каталога из FTP/HTTP-URL, указывающего на исходный tarball, " +"в `MASTER_SITES`. Не забудьте завершающий слэш ([.filename]#/#)!" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1248 +msgid "" +"The `make` macros will try to use this specification for grabbing the " +"distribution file with `FETCH` if they cannot find it already on the system." +msgstr "" +"Макросы `make` будут пытаться использовать эту спецификацию для загрузки " +"файла дистрибутива с помощью `FETCH`, если не смогут найти его уже в системе." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1251 +msgid "" +"It is recommended that multiple sites are included on this list, preferably " +"from different continents. This will safeguard against wide-area network " +"problems." +msgstr "" +"Рекомендуется включать в этот список несколько сайтов, желательно с разных " +"континентов. Это обеспечит защиту от проблем в глобальной сети." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1259 +msgid "" +"`MASTER_SITES` must not be blank. It must point to the actual site hosting " +"the distribution files. It cannot point to web archives, or the FreeBSD " +"distribution files cache sites. The only exception to this rule is ports " +"that do not have any distribution files. For example, meta-ports do not " +"have any distribution files, so `MASTER_SITES` does not need to be set." +msgstr "" +"`MASTER_SITES` не должен быть пустым. Он должен указывать на реальный сайт, " +"где размещены файлы дистрибутива. Он не может указывать на веб-архивы или " +"кэшированные сайты с файлами дистрибутива FreeBSD. Единственное исключение " +"из этого правила — порты, у которых нет файлов дистрибутива. Например, мета-" +"порты не имеют файлов дистрибутива, поэтому `MASTER_SITES` не нужно задавать." + +#. type: Title ==== +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1262 +#, no-wrap +msgid "Using `MASTER_SITE_*` Variables" +msgstr "Использование переменных `MASTER_SITE_*`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1265 +msgid "" +"Shortcut abbreviations are available for popular archives like SourceForge " +"(`SOURCEFORGE`), GNU (`GNU`), or Perl CPAN (`PERL_CPAN`). `MASTER_SITES` can " +"use them directly:" +msgstr "" +"Для популярных архивов, таких как SourceForge (`SOURCEFORGE`), GNU (`GNU`) " +"или Perl CPAN (`PERL_CPAN`), доступны сокращённые обозначения. " +"`MASTER_SITES` может использовать их напрямую:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1269 +#, no-wrap +msgid "MASTER_SITES=\tGNU/make\n" +msgstr "MASTER_SITES=\tGNU/make\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1273 +msgid "" +"The older expanded format still works, but all ports have been converted to " +"the compact format. The expanded format looks like this:" +msgstr "" +"Старый расширенный формат по-прежнему работает, но все порты были " +"преобразованы в компактный формат. Расширенный формат выглядит следующим " +"образом:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1278 +#, no-wrap +msgid "" +"MASTER_SITES=\t\t${MASTER_SITE_GNU}\n" +"MASTER_SITE_SUBDIR=\tmake\n" +msgstr "" +"MASTER_SITES=\t\t${MASTER_SITE_GNU}\n" +"MASTER_SITE_SUBDIR=\tmake\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1282 +msgid "" +"These values and variables are defined in https://cgit.freebsd.org/ports/" +"tree/Mk/bsd.sites.mk[Mk/bsd.sites.mk]. New entries are added often, so make " +"sure to check the latest version of this file before submitting a port." +msgstr "" +"Эти значения и переменные определены в https://cgit.freebsd.org/ports/tree/" +"Mk/bsd.sites.mk[Mk/bsd.sites.mk]. Новые записи добавляются часто, поэтому " +"обязательно проверяйте последнюю версию этого файла перед отправкой порта." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1287 +msgid "" +"For any `MASTER_SITE_FOO` variable, the shorthand `_FOO_` can be used. For " +"example, use:" +msgstr "" +"Для любой переменной `MASTER_SITE_FOO` можно использовать сокращение " +"`_FOO_`. Например, используйте:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1291 +#, no-wrap +msgid "MASTER_SITES=\tFOO\n" +msgstr "MASTER_SITES=\tFOO\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1294 +msgid "If `MASTER_SITE_SUBDIR` is needed, use this:" +msgstr "Если требуется `MASTER_SITE_SUBDIR`, используйте следующее:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1298 +#, no-wrap +msgid "MASTER_SITES=\tFOO/bar\n" +msgstr "MASTER_SITES=\tFOO/bar\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1305 +msgid "" +"Some `MASTER_SITE_*` names are quite long, and for ease of use, shortcuts " +"have been defined:" +msgstr "" +"Некоторые имена `MASTER_SITE_*` довольно длинные, и для удобства " +"использования были определены сокращения:" + +#. type: Block title +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1307 +#, no-wrap +msgid "Shortcuts for `MASTER_SITE_*` Macros" +msgstr "Сокращения для макросов `MASTER_SITE_*`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1311 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1369 +#, no-wrap +msgid "Macro" +msgstr "Макрос" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1313 +#, no-wrap +msgid "Shortcut" +msgstr "Сокращение" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1314 +#, no-wrap +msgid "`PERL_CPAN`" +msgstr "`PERL_CPAN`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1316 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1387 +#, no-wrap +msgid "`CPAN`" +msgstr "`CPAN`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1317 +#, no-wrap +msgid "`GITHUB`" +msgstr "`GITHUB`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1319 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1408 +#, no-wrap +msgid "`GH`" +msgstr "`GH`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1320 +#, no-wrap +msgid "`GITHUB_CLOUD`" +msgstr "`GITHUB_CLOUD`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1322 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1411 +#, no-wrap +msgid "`GHC`" +msgstr "`GHC`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1323 +#, no-wrap +msgid "`LIBREOFFICE_DEV`" +msgstr "`LIBREOFFICE_DEV`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1325 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1429 +#, no-wrap +msgid "`LODEV`" +msgstr "`LODEV`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1326 +#, no-wrap +msgid "`NETLIB`" +msgstr "`NETLIB`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1328 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1438 +#, no-wrap +msgid "`NL`" +msgstr "`NL`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1329 +#, no-wrap +msgid "`RUBYGEMS`" +msgstr "`RUBYGEMS`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1331 +#, no-wrap +msgid "`RG`" +msgstr "`RG`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1332 +#, no-wrap +msgid "`SOURCEFORGE`" +msgstr "`SOURCEFORGE`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1333 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1450 +#, no-wrap +msgid "`SF`" +msgstr "`SF`" + +#. type: Title ==== +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1337 +#, no-wrap +msgid "Magic MASTER_SITES Macros" +msgstr "Волшебные макросы MASTER_SITES" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1342 +msgid "" +"Several \"magic\" macros exist for popular sites with a predictable " +"directory structure. For these, just use the abbreviation and the system " +"will choose a subdirectory automatically. For a port named `Stardict`, of " +"version `1.2.3`, and hosted on SourceForge, adding this line:" +msgstr "" +"Существует несколько \"волшебных\" макросов для популярных сайтов с " +"предсказуемой структурой каталогов. Для них достаточно использовать " +"сокращение, и система автоматически выберет подкаталог. Например, для порта " +"с именем `Stardict`, версии `1.2.3`, размещенного на SourceForge, добавьте " +"следующую строку:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1346 +#, no-wrap +msgid "MASTER_SITES=\tSF\n" +msgstr "MASTER_SITES=\tSF\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1350 +msgid "" +"infers a subdirectory named `/project/stardict/stardict/1.2.3`. If the " +"inferred directory is incorrect, it can be overridden:" +msgstr "" +"подразумевает подкаталог с именем `/project/stardict/stardict/1.2.3`. Если " +"подразумеваемый каталог указан неверно, его можно переопределить:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1354 +#, no-wrap +msgid "MASTER_SITES=\tSF/stardict/WyabdcRealPeopleTTS/${PORTVERSION}\n" +msgstr "MASTER_SITES=\tSF/stardict/WyabdcRealPeopleTTS/${PORTVERSION}\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1357 +msgid "This can also be written as" +msgstr "Это также можно записать как" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1362 +#, no-wrap +msgid "" +"MASTER_SITES=\tSF\n" +"MASTER_SITE_SUBDIR=\tstardict/WyabdcRealPeopleTTS/${PORTVERSION}\n" +msgstr "" +"MASTER_SITES=\tSF\n" +"MASTER_SITE_SUBDIR=\tstardict/WyabdcRealPeopleTTS/${PORTVERSION}\n" + +#. type: Block title +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1365 +#, no-wrap +msgid "Magic `MASTER_SITES` Macros" +msgstr "Волшебные макросы `MASTER_SITES`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1371 +#, no-wrap +msgid "Assumed subdirectory" +msgstr "Предполагаемая поддиректория" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1372 +#, no-wrap +msgid "`APACHE_COMMONS_BINARIES`" +msgstr "`APACHE_COMMONS_BINARIES`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1374 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1377 +#, no-wrap +msgid "`${PORTNAME:S,commons-,,}`" +msgstr "`${PORTNAME:S,commons-,,}`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1375 +#, no-wrap +msgid "`APACHE_COMMONS_SOURCE`" +msgstr "`APACHE_COMMONS_SOURCE`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1378 +#, no-wrap +msgid "`APACHE_JAKARTA`" +msgstr "`APACHE_JAKARTA`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1380 +#, no-wrap +msgid "`${PORTNAME:S,-,/,}/source`" +msgstr "`${PORTNAME:S,-,/,}/source`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1381 +#, no-wrap +msgid "`BERLIOS`" +msgstr "`BERLIOS`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1383 +#, no-wrap +msgid "`${PORTNAME:tl}.berlios`" +msgstr "`${PORTNAME:tl}.berlios`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1384 +#, no-wrap +msgid "`CHEESESHOP`" +msgstr "`CHEESESHOP`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1386 +#, no-wrap +msgid "`source/${DISTNAME:C/(.).\\*/\\1/}/${DISTNAME:C/(.*)-[0-9].*/\\1/}`" +msgstr "`source/${DISTNAME:C/(.).\\*/\\1/}/${DISTNAME:C/(.*)-[0-9].*/\\1/}`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1389 +#, no-wrap +msgid "`${PORTNAME:C/-.*//}`" +msgstr "`${PORTNAME:C/-.*//}`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1390 +#, no-wrap +msgid "`DEBIAN`" +msgstr "`DEBIAN`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1392 +#, no-wrap +msgid "`pool/main/${PORTNAME:C/^((lib)?.).*$/\\1/}/${PORTNAME}`" +msgstr "`pool/main/${PORTNAME:C/^((lib)?.).*$/\\1/}/${PORTNAME}`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1393 +#, no-wrap +msgid "`FARSIGHT`" +msgstr "`FARSIGHT`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1395 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1419 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1422 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1425 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1428 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1431 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1440 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1446 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1479 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1483 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1892 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1896 +#, no-wrap +msgid "`${PORTNAME}`" +msgstr "`${PORTNAME}`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1396 +#, no-wrap +msgid "`FESTIVAL`" +msgstr "`FESTIVAL`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1398 +#, no-wrap +msgid "`${PORTREVISION}`" +msgstr "`${PORTREVISION}`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1399 +#, no-wrap +msgid "`GCC`" +msgstr "`GCC`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1401 +#, no-wrap +msgid "`releases/${DISTNAME}`" +msgstr "`releases/${DISTNAME}`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1402 +#, no-wrap +msgid "`GENTOO`" +msgstr "`GENTOO`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1404 +#, no-wrap +msgid "`distfiles`" +msgstr "`distfiles`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1405 +#, no-wrap +msgid "`GIMP`" +msgstr "`GIMP`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1407 +#, no-wrap +msgid "`${PORTNAME}/${PORTVERSION:R}/`" +msgstr "`${PORTNAME}/${PORTVERSION:R}/`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1410 +#, no-wrap +msgid "`${GH_ACCOUNT}/${GH_PROJECT}/tar.gz/${GH_TAGNAME}?dummy=/`" +msgstr "`${GH_ACCOUNT}/${GH_PROJECT}/tar.gz/${GH_TAGNAME}?dummy=/`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1413 +#, no-wrap +msgid "`${GH_ACCOUNT}/${GH_PROJECT}/`" +msgstr "`${GH_ACCOUNT}/${GH_PROJECT}/`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1414 +#, no-wrap +msgid "`GNOME`" +msgstr "`GNOME`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1416 +#, no-wrap +msgid "`sources/${PORTNAME}/${PORTVERSION:C/^([0-9]+\\.[0-9]+).*/\\1/}`" +msgstr "`sources/${PORTNAME}/${PORTVERSION:C/^([0-9]+\\.[0-9]+).*/\\1/}`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1417 +#, no-wrap +msgid "`GNU`" +msgstr "`GNU`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1420 +#, no-wrap +msgid "`GNUPG`" +msgstr "`GNUPG`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1423 +#, no-wrap +msgid "`GNU_ALPHA`" +msgstr "`GNU_ALPHA`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1426 +#, no-wrap +msgid "`HORDE`" +msgstr "`HORDE`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1432 +#, no-wrap +msgid "`MATE`" +msgstr "`MATE`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1434 +#, no-wrap +msgid "`${PORTVERSION:C/^([0-9]+\\.[0-9]+).*/\\1/}`" +msgstr "`${PORTVERSION:C/^([0-9]+\\.[0-9]+).*/\\1/}`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1435 +#, no-wrap +msgid "`MOZDEV`" +msgstr "`MOZDEV`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1437 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1449 +#, no-wrap +msgid "`${PORTNAME:tl}`" +msgstr "`${PORTNAME:tl}`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1441 +#, no-wrap +msgid "`QT`" +msgstr "`QT`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1443 +#, no-wrap +msgid "`archive/qt/${PORTVERSION:R}`" +msgstr "`archive/qt/${PORTVERSION:R}`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1444 +#, no-wrap +msgid "`SAMBA`" +msgstr "`SAMBA`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1447 +#, no-wrap +msgid "`SAVANNAH`" +msgstr "`SAVANNAH`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1451 +#, no-wrap +msgid "`${PORTNAME:tl}/${PORTNAME:tl}/${PORTVERSION}`" +msgstr "`${PORTNAME:tl}/${PORTNAME:tl}/${PORTVERSION}`" + +#. type: Title === +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1454 +#, no-wrap +msgid "`USE_GITHUB`" +msgstr "`USE_GITHUB`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1458 +msgid "" +"If the distribution file comes from a specific commit or tag on https://" +"github.com/[GitHub] for which there is no officially released file, there is " +"an easy way to set the right `DISTNAME` and `MASTER_SITES` automatically." +msgstr "" +"Если файл дистрибутива получен из определённого коммита или тега на https://" +"github.com/[GitHub], для которого нет официально выпущенного файла, " +"существует простой способ автоматически установить правильные значения " +"`DISTNAME` и `MASTER_SITES`." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1463 +msgid "" +"As of 2023-02-21 link:https://github.blog/2023-02-21-update-on-the-future-" +"stability-of-source-code-archives-and-hashes/[GitHub] have announced that " +"source downloads will be stable for a year. Please switch to release assets " +"and if not available ask upstream to generate ones." +msgstr "" +"По состоянию на 2023-02-21 link:https://github.blog/2023-02-21-update-on-the-" +"future-stability-of-source-code-archives-and-hashes/[GitHub] объявили, что " +"загрузки исходного кода будут стабильными в течение года. Пожалуйста, " +"переключитесь на ресурсы выпусков (release assets), а если они недоступны, " +"запросите их создание у вышестоящих разработчиков." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1466 +msgid "These variables are available:" +msgstr "Доступны следующие переменные:" + +#. type: Block title +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1468 +#, no-wrap +msgid "`USE_GITHUB` Description" +msgstr "`USE_GITHUB` Описание" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1472 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1881 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3681 +#, no-wrap +msgid "Variable" +msgstr "Переменная" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1475 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1884 +#, no-wrap +msgid "Default" +msgstr "По умолчанию" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1476 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4879 +#, no-wrap +msgid "`GH_ACCOUNT`" +msgstr "`GH_ACCOUNT`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1477 +#, no-wrap +msgid "Account name of the GitHub user hosting the project" +msgstr "Имя учётной записи пользователя GitHub, который размещает проект" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1480 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4880 +#, no-wrap +msgid "`GH_PROJECT`" +msgstr "`GH_PROJECT`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1481 +#, no-wrap +msgid "Name of the project on GitHub" +msgstr "Название проекта на GitHub" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1484 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4882 +#, no-wrap +msgid "`GH_TAGNAME`" +msgstr "`GH_TAGNAME`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1485 +#, no-wrap +msgid "Name of the tag to download (2.0.1, hash, ...) Using the name of a branch here is incorrect. It is also possible to use the hash of a commit id to do a snapshot." +msgstr "Имя тега для загрузки (2.0.1, хэш, ...) Использование имени ветки здесь некорректно. Также можно использовать хэш идентификатора коммита для создания снимка состояния." + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1487 +#, no-wrap +msgid "`${DISTVERSIONPREFIX}${DISTVERSION}${DISTVERSIONSUFFIX}`" +msgstr "`${DISTVERSIONPREFIX}${DISTVERSION}${DISTVERSIONSUFFIX}`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1488 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4881 +#, no-wrap +msgid "`GH_SUBDIR`" +msgstr "`GH_SUBDIR`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1491 +#, no-wrap +msgid "" +"When the software needs an additional distribution file to be extracted within\n" +"`${WRKSRC}`, this variable can be used. See the examples in\n" +"crossref:makefiles[makefile-master_sites-github-multiple, Fetching Multiple Files from GitHub] for more information." +msgstr "" +"Когда программному обеспечению требуется дополнительный файл дистрибутива для извлечения в\n" +"`${WRKSRC}`, можно использовать эту переменную. Примеры можно найти в\n" +"crossref:makefiles[makefile-master_sites-github-multiple, Загрузка нескольких файлов из GitHub] для получения дополнительной информации." + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1493 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1906 +#, no-wrap +msgid "(none)" +msgstr "(отсутствует)" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1494 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4883 +#, no-wrap +msgid "`GH_TUPLE`" +msgstr "`GH_TUPLE`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1495 +#, no-wrap +msgid "`GH_TUPLE` allows putting `GH_ACCOUNT`, `GH_PROJECT`, `GH_TAGNAME`, and `GH_SUBDIR` into a single variable. The format is _account_`:`_project_`:`_tagname_`:`_group_`/`_subdir_. The `/`_subdir_ part is optional. It is helpful when there is more than one GitHub project from which to fetch." +msgstr "`GH_TUPLE` позволяет объединить `GH_ACCOUNT`, `GH_PROJECT`, `GH_TAGNAME` и `GH_SUBDIR` в одну переменную. Формат следующий: _account_`:`_project_`:`_tagname_`:`_group_`/`_subdir_. Часть `/`_subdir_ является необязательной. Это полезно, когда требуется получить несколько проектов с GitHub." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1501 +msgid "" +"Do not use `GH_TUPLE` for the default distribution file, as it has no " +"default." +msgstr "" +"Не используйте `GH_TUPLE` для файла дистрибутива по умолчанию, так как у " +"него нет значения по умолчанию." + +#. type: Block title +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1504 +#, no-wrap +msgid "Simple Use of `USE_GITHUB`" +msgstr "Простое использование `USE_GITHUB`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1509 +msgid "" +"While trying to make a port for version `1.2.7` of pkg from the FreeBSD user " +"on github, at https://github.com/freebsd/pkg/[], The [.filename]#Makefile# " +"would end up looking like this (slightly stripped for the example):" +msgstr "" +"При попытке создать порт для версии `1.2.7` pkg от пользователя FreeBSD на " +"github, по адресу https://github.com/freebsd/pkg/[], файл " +"[.filename]#Makefile# в итоге будет выглядеть следующим образом " +"(незначительно сокращено для примера):" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1514 +#, no-wrap +msgid "" +"PORTNAME=\tpkg\n" +"DISTVERSION=\t1.2.7\n" +msgstr "" +"PORTNAME=\tpkg\n" +"DISTVERSION=\t1.2.7\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1517 +#, no-wrap +msgid "" +"USE_GITHUB=\tyes\n" +"GH_ACCOUNT=\tfreebsd\n" +msgstr "" +"USE_GITHUB=\tyes\n" +"GH_ACCOUNT=\tfreebsd\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1520 +msgid "" +"It will automatically have `MASTER_SITES` set to `GH` and `WRKSRC` to `$" +"{WRKDIR}/pkg-1.2.7`." +msgstr "" +"Он автоматически получит `MASTER_SITES` установленным в `GH` и `WRKSRC` в `$" +"{WRKDIR}/pkg-1.2.7`." + +#. type: Block title +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1523 +#, no-wrap +msgid "More Complete Use of `USE_GITHUB`" +msgstr "Более полное использование `USE_GITHUB`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1527 +msgid "" +"While trying to make a port for the bleeding edge version of pkg from the " +"FreeBSD user on github, at https://github.com/freebsd/pkg/[], the " +"[.filename]#Makefile# ends up looking like this (slightly stripped for the " +"example):" +msgstr "" +"При попытке создать порт для самой последней версии pkg от пользователя " +"FreeBSD на github, по адресу https://github.com/freebsd/pkg/[], файл " +"[.filename]#Makefile# в итоге выглядит следующим образом (незначительно " +"сокращено для примера):" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1532 +#, no-wrap +msgid "" +"PORTNAME=\tpkg-devel\n" +"DISTVERSION=\t1.3.0.a.20140411\n" +msgstr "" +"PORTNAME=\tpkg-devel\n" +"DISTVERSION=\t1.3.0.a.20140411\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1537 +#, no-wrap +msgid "" +"USE_GITHUB=\tyes\n" +"GH_ACCOUNT=\tfreebsd\n" +"GH_PROJECT=\tpkg\n" +"GH_TAGNAME=\t6dbb17b\n" +msgstr "" +"USE_GITHUB=\tyes\n" +"GH_ACCOUNT=\tfreebsd\n" +"GH_PROJECT=\tpkg\n" +"GH_TAGNAME=\t6dbb17b\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1540 +msgid "" +"It will automatically have `MASTER_SITES` set to `GH` and `WRKSRC` to `$" +"{WRKDIR}/pkg-6dbb17b`." +msgstr "" +"Он автоматически получит `MASTER_SITES` со значением `GH` и `WRKSRC` со " +"значением `${WRKDIR}/pkg-6dbb17b`." + +#. type: delimited block * 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1544 +msgid "" +"`20140411` is the date of the commit referenced in `GH_TAGNAME`, not the " +"date the [.filename]#Makefile# is edited, or the date the commit is made." +msgstr "" +"`20140411` — это дата коммита, указанного в `GH_TAGNAME`, а не дата " +"редактирования файла [.filename]#Makefile# или дата создания коммита." + +#. type: Block title +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1549 +#, no-wrap +msgid "Use of `USE_GITHUB` with `DISTVERSIONPREFIX`" +msgstr "Использование `USE_GITHUB` с `DISTVERSIONPREFIX`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1555 +msgid "" +"From time to time, `GH_TAGNAME` is a slight variation from `DISTVERSION`. " +"For example, if the version is `1.0.2`, the tag is `v1.0.2`. In those " +"cases, it is possible to use `DISTVERSIONPREFIX` or `DISTVERSIONSUFFIX`:" +msgstr "" +"Время от времени `GH_TAGNAME` немного отличается от `DISTVERSION`. Например, " +"если версия `1.0.2`, то тег будет `v1.0.2`. В таких случаях можно " +"использовать `DISTVERSIONPREFIX` или `DISTVERSIONSUFFIX`:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1561 +#, no-wrap +msgid "" +"PORTNAME=\tfoo\n" +"DISTVERSIONPREFIX=\tv\n" +"DISTVERSION=\t1.0.2\n" +msgstr "" +"PORTNAME=\tfoo\n" +"DISTVERSIONPREFIX=\tv\n" +"DISTVERSION=\t1.0.2\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1563 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1627 +#, no-wrap +msgid "USE_GITHUB=\tyes\n" +msgstr "USE_GITHUB=\tyes\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1566 +msgid "" +"It will automatically set `GH_TAGNAME` to `v1.0.2`, while `WRKSRC` will be " +"kept to `${WRKDIR}/foo-1.0.2`." +msgstr "" +"Он автоматически установит `GH_TAGNAME` в `v1.0.2`, в то время как `WRKSRC` " +"останется `${WRKDIR}/foo-1.0.2`." + +#. type: Block title +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1569 +#, no-wrap +msgid "Using `USE_GITHUB` When Upstream Does Not Use Versions" +msgstr "Использование `USE_GITHUB` при отсутствии версий у исходного проекта" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1574 +msgid "" +"If there never was a version upstream, do not invent one like `0.1` or " +"`1.0`. Create the port with a `DISTVERSION` of `g__YYYYMMDD__`, where `g` " +"is for Git, and `_YYYYMMDD_` represents the date the commit referenced in " +"`GH_TAGNAME`." +msgstr "" +"Если никогда не было версии вышестоящего репозитория, не изобретайте её, " +"например `0.1` или `1.0`. Создайте порт с `DISTVERSION` в формате " +"`g__YYYYMMDD__`, где `g` означает Git, а `_YYYYMMDD_` представляет дату " +"коммита, указанного в `GH_TAGNAME`." + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1579 +#, no-wrap +msgid "" +"PORTNAME=\tbar\n" +"DISTVERSION=\tg20140411\n" +msgstr "" +"PORTNAME=\tbar\n" +"DISTVERSION=\tg20140411\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1582 +#, no-wrap +msgid "" +"USE_GITHUB=\tyes\n" +"GH_TAGNAME=\tc472d66b\n" +msgstr "" +"USE_GITHUB=\tyes\n" +"GH_TAGNAME=\tc472d66b\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1586 +msgid "" +"This creates a versioning scheme that increases over time, and that is still " +"before version `0`. See crossref:makefiles[makefile-versions-ex-pkg-" +"version, this secion on how to compare versions] using man:pkg-version[8]):" +msgstr "" +"Это создаёт схему версионирования, которая увеличивается со временем и всё " +"ещё находится до версии `0`. Подробности об использовании man:pkg-version[8] " +"для сравнения версий смотрите в crossref:makefiles[makefile-versions-ex-pkg-" +"version, этой секции]:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1591 +#, no-wrap +msgid "" +"% pkg version -t g20140411 0\n" +"<\n" +msgstr "" +"% pkg version -t g20140411 0\n" +"<\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1594 +msgid "" +"Which means using `PORTEPOCH` will not be needed in case upstream decides to " +"cut versions in the future." +msgstr "" +"Что означает, что использование `PORTEPOCH` не потребуется, если вышестоящий " +"проект решит сократить версии в будущем." + +#. type: Block title +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1597 +#, no-wrap +msgid "Using `USE_GITHUB` to Access a Commit Between Two Versions" +msgstr "Использование `USE_GITHUB` для доступа к коммиту между двумя версиями" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1601 +msgid "" +"If the current version of the software uses a Git tag, and the port needs to " +"be updated to a newer, intermediate version, without a tag, use man:git-" +"describe[1] to find out the version to use:" +msgstr "" +"Если текущая версия программного обеспечения использует тег Git, и порт " +"необходимо обновить до более новой промежуточной версии без тега, " +"используйте man:git-describe[1], чтобы определить версию для использования:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1606 +#, no-wrap +msgid "" +"% git describe --tags f0038b1\n" +"v0.7.3-14-gf0038b1\n" +msgstr "" +"% git describe --tags f0038b1\n" +"v0.7.3-14-gf0038b1\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1609 +msgid "`v0.7.3-14-gf0038b1` can be split into three parts:" +msgstr "`v0.7.3-14-gf0038b1` можно разделить на три части:" + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1610 +#, no-wrap +msgid "`v0.7.3`" +msgstr "`v0.7.3`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1612 +msgid "" +"This is the last Git tag that appears in the commit history before the " +"requested commit." +msgstr "" +"Это последний тег Git, который появляется в истории коммитов перед " +"запрошенным коммитом." + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1613 +#, no-wrap +msgid "`-14`" +msgstr "`-14`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1615 +msgid "" +"This means that the requested commit, `f0038b1`, is the 14th commit after " +"the `v0.7.3` tag." +msgstr "" +"Это означает, что запрошенный коммит `f0038b1` является 14-м коммитом после " +"тега `v0.7.3`." + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1616 +#, no-wrap +msgid "`-gf0038b1`" +msgstr "`-gf0038b1`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1618 +msgid "" +"The `-g` means \"Git\", and the `f0038b1` is the commit hash that this " +"reference points to." +msgstr "" +"`-g` означает \"Git\", а `f0038b1` — это хеш коммита, на который указывает " +"данная ссылка." + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1625 +#, no-wrap +msgid "" +"PORTNAME=\tbar\n" +"DISTVERSIONPREFIX= v\n" +"DISTVERSION=\t0.7.3-14\n" +"DISTVERSIONSUFFIX= -gf0038b1\n" +msgstr "" +"PORTNAME=\tbar\n" +"DISTVERSIONPREFIX= v\n" +"DISTVERSION=\t0.7.3-14\n" +"DISTVERSIONSUFFIX= -gf0038b1\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1631 +msgid "" +"This creates a versioning scheme that increases over time (well, over " +"commits), and does not conflict with the creation of a `0.7.4` version. See " +"crossref:makefiles[makefile-versions-ex-pkg-version, this section for how to " +"compare versions] using man:pkg-version[8]):" +msgstr "" +"Это создаёт схему версионирования, которая увеличивается со временем " +"(точнее, с коммитами) и не конфликтует с созданием версии `0.7.4`. " +"Подробности об использовании man:pkg-version[8] для сравнения версий " +"смотрите в crossref:makefiles[makefile-versions-ex-pkg-version, этой " +"секции] :" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1638 +#, no-wrap +msgid "" +"% pkg version -t 0.7.3 0.7.3.14\n" +"<\n" +"% pkg version -t 0.7.3.14 0.7.4\n" +"<\n" +msgstr "" +"% pkg version -t 0.7.3 0.7.3.14\n" +"<\n" +"% pkg version -t 0.7.3.14 0.7.4\n" +"<\n" + +#. type: delimited block * 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1644 +msgid "" +"If the requested commit is the same as a tag, a shorter description is shown " +"by default. The longer version is equivalent:" +msgstr "" +"Если запрошенный коммит совпадает с тегом, по умолчанию отображается более " +"короткое описание. Полная версия эквивалентна:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1649 +#, no-wrap +msgid "" +"% git describe --tags c66c71d\n" +"v0.7.3\n" +msgstr "" +"% git describe --tags c66c71d\n" +"v0.7.3\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1652 +#, no-wrap +msgid "" +"% git describe --tags --long c66c71d\n" +"v0.7.3-0-gc66c71d\n" +msgstr "" +"% git describe --tags --long c66c71d\n" +"v0.7.3-0-gc66c71d\n" + +#. type: Title ==== +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1659 +#, no-wrap +msgid "Fetching Multiple Files from GitHub" +msgstr "Извлечение нескольких файлов из GitHub" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1663 +msgid "" +"The `USE_GITHUB` framework also supports fetching multiple distribution " +"files from different places in GitHub. It works in a way very similar to " +"crossref:makefiles[porting-master-sites-n, Multiple Distribution or Patches " +"Files from Multiple Locations]." +msgstr "" +"Фреймворк `USE_GITHUB` также поддерживает загрузку нескольких файлов " +"дистрибутива из разных мест в GitHub. Он работает очень похоже на " +"crossref:makefiles[porting-master-sites-n, Файлы дистрибуции или патчей из " +"нескольких мест]." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1669 +msgid "" +"Multiple values are added to `GH_ACCOUNT`, `GH_PROJECT`, and `GH_TAGNAME`. " +"Each different value is assigned a group. The main value can either have no " +"group, or the `:DEFAULT` group. A value can be omitted if it is the same as " +"the default as listed in crossref:makefiles[makefile-master_sites-github-" +"description,`USE_GITHUB` Description]." +msgstr "" +"В `GH_ACCOUNT`, `GH_PROJECT` и `GH_TAGNAME` добавляются несколько значений. " +"Каждому различному значению присваивается группа. Основное значение может не " +"иметь группы или принадлежать группе `:DEFAULT`. Значение может быть " +"опущено, если оно совпадает со значением по умолчанию, указанным в " +"crossref:makefiles[makefile-master_sites-github-description,описании " +"`USE_GITHUB`]." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1672 +msgid "" +"`GH_TUPLE` can also be used when there are a lot of distribution files. It " +"helps keep the account, project, tagname, and group information at the same " +"place." +msgstr "" +"`GH_TUPLE` также можно использовать, когда имеется множество файлов " +"дистрибутива. Это помогает сохранять учётные данные, проект, имя тега и " +"информацию о группе в одном месте." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1675 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1979 +msgid "" +"For each group, a `${WRKSRC_group}` helper variable is created, containing " +"the directory into which the file has been extracted. The `${WRKSRC_group}` " +"variables can be used to move directories around during `post-extract`, or " +"add to `CONFIGURE_ARGS`, or whatever is needed so that the software builds " +"correctly." +msgstr "" +"Для каждой группы создаётся вспомогательная переменная `${WRKSRC_group}`, " +"содержащая каталог, в который был извлечён файл. Переменные `${WRKSRC_group}" +"` могут использоваться для перемещения каталогов во время `post-extract`, " +"добавления в `CONFIGURE_ARGS` или любых других действий, необходимых для " +"корректной сборки программного обеспечения." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1680 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1984 +msgid "" +"The `:__group__` part _must_ be used for _only one_ distribution file. It " +"is used as a unique key and using it more than once will overwrite the " +"previous values." +msgstr "" +"Часть `:__group__` _должна_ использоваться _только для одного_ файла " +"дистрибутива. Она служит уникальным ключом, и её повторное использование " +"приведёт к перезаписи предыдущих значений." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1687 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1991 +msgid "" +"As this is only syntactic sugar above `DISTFILES` and `MASTER_SITES`, the " +"group names must adhere to the restrictions on group names outlined in " +"crossref:makefiles[porting-master-sites-n, Multiple Distribution or Patches " +"Files from Multiple Locations]" +msgstr "" +"Поскольку это всего лишь синтаксический сахар над `DISTFILES` и " +"`MASTER_SITES`, имена групп должны соответствовать ограничениям на имена " +"групп, описанным в crossref:makefiles[porting-master-sites-n, Файлы " +"дистрибутивов или патчей из нескольких источников]" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1691 +msgid "" +"When fetching multiple files from GitHub, sometimes the default distribution " +"file is not fetched from GitHub. To disable fetching the default " +"distribution, set:" +msgstr "" +"При получении нескольких файлов из GitHub иногда файл дистрибутива по " +"умолчанию не загружается из GitHub. Чтобы отключить загрузку файла " +"дистрибутива по умолчанию, установите:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1695 +#, no-wrap +msgid "USE_GITHUB=\tnodefault\n" +msgstr "USE_GITHUB=\tnodefault\n" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1700 +msgid "" +"When using `USE_GITHUB=nodefault`, the [.filename]#Makefile# must set " +"`DISTFILES` in its crossref:porting-order[porting-order-portname,top block]. " +"The definition should be:" +msgstr "" +"При использовании `USE_GITHUB=nodefault` в [.filename]#Makefile# необходимо " +"указать `DISTFILES` в его crossref:porting-order[porting-order-" +"portname,верхнем блоке]. Определение должно быть следующим:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1704 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2010 +#, no-wrap +msgid "DISTFILES= ${DISTNAME}${EXTRACT_SUFX}\n" +msgstr "DISTFILES= ${DISTNAME}${EXTRACT_SUFX}\n" + +#. type: Block title +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1709 +#, no-wrap +msgid "Use of `USE_GITHUB` with Multiple Distribution Files" +msgstr "Использование `USE_GITHUB` с несколькими файлами дистрибутива" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1715 +msgid "" +"From time to time, there is a need to fetch more than one distribution " +"file. For example, when the upstream git repository uses submodules. This " +"can be done easily using groups in the `GH_*` variables:" +msgstr "" +"Время от времени возникает необходимость загрузить более одного файла " +"дистрибутива. Например, когда вышестоящий репозиторий git использует " +"подмодули. Это можно легко сделать с помощью групп в переменных `GH_*`:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1720 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1766 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2026 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2072 +#, no-wrap +msgid "" +"PORTNAME=\tfoo\n" +"DISTVERSION=\t1.0.2\n" +msgstr "" +"PORTNAME=\tfoo\n" +"DISTVERSION=\t1.0.2\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1726 +#, no-wrap +msgid "" +"USE_GITHUB=\tyes\n" +"GH_ACCOUNT=\tbar:icons,contrib\n" +"GH_PROJECT=\tfoo-icons:icons foo-contrib:contrib\n" +"GH_TAGNAME=\t1.0:icons fa579bc:contrib\n" +"GH_SUBDIR=\text/icons:icons\n" +msgstr "" +"USE_GITHUB=\tyes\n" +"GH_ACCOUNT=\tbar:icons,contrib\n" +"GH_PROJECT=\tfoo-icons:icons foo-contrib:contrib\n" +"GH_TAGNAME=\t1.0:icons fa579bc:contrib\n" +"GH_SUBDIR=\text/icons:icons\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1728 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1772 +#, no-wrap +msgid "CONFIGURE_ARGS=\t--with-contrib=${WRKSRC_contrib}\n" +msgstr "CONFIGURE_ARGS=\t--with-contrib=${WRKSRC_contrib}\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1735 +msgid "" +"This will fetch three distribution files from github. The default one comes " +"from [.filename]#foo/foo# and is version `1.0.2`. The second one, with the " +"`icons` group, comes from [.filename]#bar/foo-icons# and is in version " +"`1.0`. The third one comes from [.filename]#bar/foo-contrib# and uses the " +"Git commit `fa579bc`. The distribution files are named [.filename]#foo-" +"foo-1.0.2_GH0.tar.gz#, [.filename]#bar-foo-icons-1.0_GH0.tar.gz#, and " +"[.filename]#bar-foo-contrib-fa579bc_GH0.tar.gz#." +msgstr "" +"Это загрузит три файла дистрибутива с github. Стандартный берется из " +"[.filename]#foo/foo# и имеет версию `1.0.2`. Второй, с группой `icons`, " +"берется из [.filename]#bar/foo-icons# и имеет версию `1.0`. Третий берется " +"из [.filename]#bar/foo-contrib# и использует Git-коммит `fa579bc`. Файлы " +"дистрибутива называются [.filename]#foo-foo-1.0.2_GH0.tar.gz#, " +"[.filename]#bar-foo-icons-1.0_GH0.tar.gz# и [.filename]#bar-foo-contrib-" +"fa579bc_GH0.tar.gz#." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1741 +msgid "" +"All the distribution files are extracted in `${WRKDIR}` in their respective " +"subdirectories. The default file is still extracted in `${WRKSRC}`, in this " +"case, [.filename]#${WRKDIR}/foo-1.0.2#. Each additional distribution file " +"is extracted in `${WRKSRC_group}`. Here, for the `icons` group, it is " +"called `${WRKSRC_icons}` and it contains [.filename]#${WRKDIR}/foo-" +"icons-1.0#. The file with the `contrib` group is called `${WRKSRC_contrib}` " +"and contains `${WRKDIR}/foo-contrib-fa579bc`." +msgstr "" +"Все файлы дистрибутива извлекаются в `${WRKDIR}` в соответствующих " +"подкаталогах. Основной файл по-прежнему извлекается в `${WRKSRC}`, в данном " +"случае, [.filename]#${WRKDIR}/foo-1.0.2#. Каждый дополнительный файл " +"дистрибутива извлекается в `${WRKSRC_group}`. Здесь, для группы `icons`, он " +"называется `${WRKSRC_icons}` и содержит [.filename]#${WRKDIR}/foo-" +"icons-1.0#. Файл с группой `contrib` называется `${WRKSRC_contrib}` и " +"содержит `${WRKDIR}/foo-contrib-fa579bc`." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1745 +msgid "" +"The software's build system expects to find the icons in a [.filename]#ext/" +"icons# subdirectory in its sources, so `GH_SUBDIR` is used. `GH_SUBDIR` " +"makes sure that [.filename]#ext# exists, but that [.filename]#ext/icons# " +"does not already exist. Then it does this:" +msgstr "" +"Система сборки программы ожидает найти иконки в подкаталоге [.filename]#ext/" +"icons# в её исходниках, поэтому используется `GH_SUBDIR`. `GH_SUBDIR` " +"гарантирует, что [.filename]#ext# существует, но [.filename]#ext/icons# ещё " +"не существует. Затем он выполняет следующее:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1750 +#, no-wrap +msgid "" +"post-extract:\n" +" @${MV} ${WRKSRC_icons} ${WRKSRC}/ext/icons\n" +msgstr "" +"post-extract:\n" +" @${MV} ${WRKSRC_icons} ${WRKSRC}/ext/icons\n" + +#. type: Block title +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1755 +#, no-wrap +msgid "Use of `USE_GITHUB` with Multiple Distribution Files Using `GH_TUPLE`" +msgstr "Использование `USE_GITHUB` с несколькими файлами дистрибутива с помощью `GH_TUPLE`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1761 +msgid "" +"This is functionally equivalent to crossref:makefiles[makefile-master_sites-" +"github-multi,Use of `USE_GITHUB` with Multiple Distribution Files], but " +"using `GH_TUPLE`:" +msgstr "" +"Это функционально эквивалентно crossref:makefiles[makefile-master_sites-" +"github-multi,Использованию `USE_GITHUB` с несколькими файлами дистрибутива], " +"но с использованием `GH_TUPLE`:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1770 +#, no-wrap +msgid "" +"USE_GITHUB=\tyes\n" +"GH_TUPLE=\tbar:foo-icons:1.0:icons/ext/icons \\\n" +"\t\tbar:foo-contrib:fa579bc:contrib\n" +msgstr "" +"USE_GITHUB=\tyes\n" +"GH_TUPLE=\tbar:foo-icons:1.0:icons/ext/icons \\\n" +"\t\tbar:foo-contrib:fa579bc:contrib\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1776 +msgid "" +"Grouping was used in the previous example with `bar:icons,contrib`. Some " +"redundant information is present with `GH_TUPLE` because grouping is not " +"possible." +msgstr "" +"В предыдущем примере использовалась группировка с `bar:icons,contrib`. В " +"`GH_TUPLE` присутствует избыточная информация, так как группировка " +"невозможна." + +#. type: Block title +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1779 +#, no-wrap +msgid "How to Use `USE_GITHUB` with Git Submodules?" +msgstr "Как использовать `USE_GITHUB` с подмодулями Git?" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1784 +msgid "" +"Ports with GitHub as an upstream repository sometimes use submodules. See " +"man:git-submodule[1] for more information." +msgstr "" +"Порты, использующие GitHub в качестве вышестоящего репозитория, иногда " +"применяют подмодули. Подробнее см. man:git-submodule[1]." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1787 +msgid "" +"The problem with submodules is that each is a separate repository. As such, " +"they each must be fetched separately." +msgstr "" +"Проблема с подмодулями заключается в том, что каждый из них является " +"отдельным репозиторием. Таким образом, каждый из них должен быть загружен " +"отдельно." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1792 +msgid "" +"Using package:finance/moneymanagerex[] as an example, its GitHub repository " +"is https://github.com/moneymanagerex/moneymanagerex/[]. It has a https://" +"github.com/moneymanagerex/moneymanagerex/blob/" +"master/.gitmodules[.gitmodules] file at the root. This file describes all " +"the submodules used in this repository, and lists additional repositories " +"needed. This file will tell what additional repositories are needed:" +msgstr "" +"В качестве примера используем пакет package:finance/moneymanagerex[], его " +"репозиторий на GitHub находится по адресу https://github.com/moneymanagerex/" +"moneymanagerex/[]. В корне репозитория есть файл https://github.com/" +"moneymanagerex/moneymanagerex/blob/master/.gitmodules[.gitmodules]. Этот " +"файл описывает все подмодули, используемые в данном репозитории, и " +"перечисляет дополнительные необходимые репозитории. Этот файл покажет, какие " +"дополнительные репозитории требуются:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1808 +#, no-wrap +msgid "" +"[submodule \"lib/wxsqlite3\"]\n" +"\tpath = lib/wxsqlite3\n" +"\turl = https://github.com/utelle/wxsqlite3.git\n" +"[submodule \"3rd/mongoose\"]\n" +"\tpath = 3rd/mongoose\n" +"\turl = https://github.com/cesanta/mongoose.git\n" +"[submodule \"3rd/LuaGlue\"]\n" +"\tpath = 3rd/LuaGlue\n" +"\turl = https://github.com/moneymanagerex/LuaGlue.git\n" +"[submodule \"3rd/cgitemplate\"]\n" +"\tpath = 3rd/cgitemplate\n" +"\turl = https://github.com/moneymanagerex/html-template.git\n" +"[...]\n" +msgstr "" +"[submodule \"lib/wxsqlite3\"]\n" +"\tpath = lib/wxsqlite3\n" +"\turl = https://github.com/utelle/wxsqlite3.git\n" +"[submodule \"3rd/mongoose\"]\n" +"\tpath = 3rd/mongoose\n" +"\turl = https://github.com/cesanta/mongoose.git\n" +"[submodule \"3rd/LuaGlue\"]\n" +"\tpath = 3rd/LuaGlue\n" +"\turl = https://github.com/moneymanagerex/LuaGlue.git\n" +"[submodule \"3rd/cgitemplate\"]\n" +"\tpath = 3rd/cgitemplate\n" +"\turl = https://github.com/moneymanagerex/html-template.git\n" +"[...]\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1812 +msgid "" +"The only information missing from that file is the commit hash or tag to use " +"as a version. This information is found after cloning the repository:" +msgstr "" +"Единственная информация, отсутствующая в этом файле, — это хэш коммита или " +"тег, который следует использовать в качестве версии. Эта информация " +"находится после клонирования репозитория:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1841 +#, no-wrap +msgid "" +"% git clone --recurse-submodules https://github.com/moneymanagerex/moneymanagerex.git\n" +"Cloning into 'moneymanagerex'...\n" +"remote: Counting objects: 32387, done.\n" +"[...]\n" +"Submodule '3rd/LuaGlue' (https://github.com/moneymanagerex/LuaGlue.git) registered for path '3rd/LuaGlue'\n" +"Submodule '3rd/cgitemplate' (https://github.com/moneymanagerex/html-template.git) registered for path '3rd/cgitemplate'\n" +"Submodule '3rd/mongoose' (https://github.com/cesanta/mongoose.git) registered for path '3rd/mongoose'\n" +"Submodule 'lib/wxsqlite3' (https://github.com/utelle/wxsqlite3.git) registered for path 'lib/wxsqlite3'\n" +"[...]\n" +"Cloning into '/home/mat/work/freebsd/ports/finance/moneymanagerex/moneymanagerex/3rd/LuaGlue'...\n" +"Cloning into '/home/mat/work/freebsd/ports/finance/moneymanagerex/moneymanagerex/3rd/cgitemplate'...\n" +"Cloning into '/home/mat/work/freebsd/ports/finance/moneymanagerex/moneymanagerex/3rd/mongoose'...\n" +"Cloning into '/home/mat/work/freebsd/ports/finance/moneymanagerex/moneymanagerex/lib/wxsqlite3'...\n" +"[...]\n" +"Submodule path '3rd/LuaGlue': checked out 'c51d11a247ee4d1e9817dfa2a8da8d9e2f97ae3b'\n" +"Submodule path '3rd/cgitemplate': checked out 'cd434eeeb35904ebcd3d718ba29c281a649b192c'\n" +"Submodule path '3rd/mongoose': checked out '2140e5992ab9a3a9a34ce9a281abf57f00f95cda'\n" +"Submodule path 'lib/wxsqlite3': checked out 'fb66eb230d8aed21dec273b38c7c054dcb7d6b51'\n" +"[...]\n" +"% cd moneymanagerex\n" +"% git submodule status\n" +" c51d11a247ee4d1e9817dfa2a8da8d9e2f97ae3b 3rd/LuaGlue (heads/master)\n" +" cd434eeeb35904ebcd3d718ba29c281a649b192c 3rd/cgitemplate (cd434ee)\n" +" 2140e5992ab9a3a9a34ce9a281abf57f00f95cda 3rd/mongoose (6.2-138-g2140e59)\n" +" fb66eb230d8aed21dec273b38c7c054dcb7d6b51 lib/wxsqlite3 (v3.4.0)\n" +"[...]\n" +msgstr "" +"% git clone --recurse-submodules https://github.com/moneymanagerex/moneymanagerex.git\n" +"Cloning into 'moneymanagerex'...\n" +"remote: Counting objects: 32387, done.\n" +"[...]\n" +"Submodule '3rd/LuaGlue' (https://github.com/moneymanagerex/LuaGlue.git) registered for path '3rd/LuaGlue'\n" +"Submodule '3rd/cgitemplate' (https://github.com/moneymanagerex/html-template.git) registered for path '3rd/cgitemplate'\n" +"Submodule '3rd/mongoose' (https://github.com/cesanta/mongoose.git) registered for path '3rd/mongoose'\n" +"Submodule 'lib/wxsqlite3' (https://github.com/utelle/wxsqlite3.git) registered for path 'lib/wxsqlite3'\n" +"[...]\n" +"Cloning into '/home/mat/work/freebsd/ports/finance/moneymanagerex/moneymanagerex/3rd/LuaGlue'...\n" +"Cloning into '/home/mat/work/freebsd/ports/finance/moneymanagerex/moneymanagerex/3rd/cgitemplate'...\n" +"Cloning into '/home/mat/work/freebsd/ports/finance/moneymanagerex/moneymanagerex/3rd/mongoose'...\n" +"Cloning into '/home/mat/work/freebsd/ports/finance/moneymanagerex/moneymanagerex/lib/wxsqlite3'...\n" +"[...]\n" +"Submodule path '3rd/LuaGlue': checked out 'c51d11a247ee4d1e9817dfa2a8da8d9e2f97ae3b'\n" +"Submodule path '3rd/cgitemplate': checked out 'cd434eeeb35904ebcd3d718ba29c281a649b192c'\n" +"Submodule path '3rd/mongoose': checked out '2140e5992ab9a3a9a34ce9a281abf57f00f95cda'\n" +"Submodule path 'lib/wxsqlite3': checked out 'fb66eb230d8aed21dec273b38c7c054dcb7d6b51'\n" +"[...]\n" +"% cd moneymanagerex\n" +"% git submodule status\n" +" c51d11a247ee4d1e9817dfa2a8da8d9e2f97ae3b 3rd/LuaGlue (heads/master)\n" +" cd434eeeb35904ebcd3d718ba29c281a649b192c 3rd/cgitemplate (cd434ee)\n" +" 2140e5992ab9a3a9a34ce9a281abf57f00f95cda 3rd/mongoose (6.2-138-g2140e59)\n" +" fb66eb230d8aed21dec273b38c7c054dcb7d6b51 lib/wxsqlite3 (v3.4.0)\n" +"[...]\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1845 +msgid "" +"It can also be found on GitHub. Each subdirectory that is a submodule is " +"shown as `_directory @ hash_`, for example, `mongoose @ 2140e59`." +msgstr "" +"Это также можно найти на GitHub. Каждый подкаталог, который является " +"подмодулем, отображается как `_директория @ хэш_`, например, `mongoose @ " +"2140e59`." + +#. type: delimited block * 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1851 +msgid "" +"While getting the information from GitHub seems more straightforward, the " +"information found using `git submodule status` will provide more meaningful " +"information. For example, here, ``lib/wxsqlite3``'s commit hash `fb66eb2` " +"correspond to `v3.4.0`. Both can be used interchangeably, but when a tag is " +"available, use it." +msgstr "" +"Хотя получение информации из GitHub кажется более простым, данные, " +"полученные с помощью `git submodule status`, будут более информативными. " +"Например, здесь хеш коммита ``lib/wxsqlite3`` `fb66eb2` соответствует " +"`v3.4.0`. Оба варианта можно использовать взаимозаменяемо, но если доступен " +"тег, предпочтительнее использовать его." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1854 +msgid "" +"Now that all the required information has been gathered, the " +"[.filename]#Makefile# can be written (only GitHub-related lines are shown):" +msgstr "" +"Теперь, когда вся необходимая информация собрана, можно написать " +"[.filename]#Makefile# (показаны только строки, связанные с GitHub):" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1860 +#, no-wrap +msgid "" +"PORTNAME=\tmoneymanagerex\n" +"DISTVERSIONPREFIX=\tv\n" +"DISTVERSION=\t1.3.0\n" +msgstr "" +"PORTNAME=\tmoneymanagerex\n" +"DISTVERSIONPREFIX=\tv\n" +"DISTVERSION=\t1.3.0\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1867 +#, no-wrap +msgid "" +"USE_GITHUB=\tyes\n" +"GH_TUPLE=\tutelle:wxsqlite3:v3.4.0:wxsqlite3/lib/wxsqlite3 \\\n" +"\t\tmoneymanagerex:LuaGlue:c51d11a:lua_glue/3rd/LuaGlue \\\n" +"\t\tmoneymanagerex:html-template:cd434ee:html_template/3rd/cgitemplate \\\n" +"\t\tcesanta:mongoose:2140e59:mongoose/3rd/mongoose \\\n" +"\t\t[...]\n" +msgstr "" +"USE_GITHUB=\tyes\n" +"GH_TUPLE=\tutelle:wxsqlite3:v3.4.0:wxsqlite3/lib/wxsqlite3 \\\n" +"\t\tmoneymanagerex:LuaGlue:c51d11a:lua_glue/3rd/LuaGlue \\\n" +"\t\tmoneymanagerex:html-template:cd434ee:html_template/3rd/cgitemplate \\\n" +"\t\tcesanta:mongoose:2140e59:mongoose/3rd/mongoose \\\n" +"\t\t[...]\n" + +#. type: Title === +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1872 +#, no-wrap +msgid "`USE_GITLAB`" +msgstr "`USE_GITLAB`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1875 +msgid "" +"Similar to GitHub, if the distribution file comes from https://gitlab.com/" +"[gitlab.com] or is hosting the GitLab software, these variables are " +"available for use and might need to be set." +msgstr "" +"Подобно GitHub, если файл дистрибутива поставляется с https://gitlab.com/" +"[gitlab.com] или использует программное обеспечение GitLab, эти переменные " +"доступны для использования и могут потребовать установки." + +#. type: Block title +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1877 +#, no-wrap +msgid "`USE_GITLAB` Description" +msgstr "Описание `USE_GITLAB`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1885 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4887 +#, no-wrap +msgid "`GL_SITE`" +msgstr "`GL_SITE`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1886 +#, no-wrap +msgid "Site name hosting the GitLab project" +msgstr "Название сайта, на котором размещен проект GitLab" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1888 +#, no-wrap +msgid "https://gitlab.com/" +msgstr "https://gitlab.com/" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1889 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4884 +#, no-wrap +msgid "`GL_ACCOUNT`" +msgstr "`GL_ACCOUNT`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1890 +#, no-wrap +msgid "Account name of the GitLab user hosting the project" +msgstr "Имя учётной записи пользователя GitLab, размещающего проект" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1893 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4886 +#, no-wrap +msgid "`GL_PROJECT`" +msgstr "`GL_PROJECT`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1894 +#, no-wrap +msgid "Name of the project on GitLab" +msgstr "Название проекта на GitLab" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1897 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4885 +#, no-wrap +msgid "`GL_COMMIT`" +msgstr "`GL_COMMIT`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1898 +#, no-wrap +msgid "The commit hash to download. Must be the full 160 bit, 40 character hex sha1 hash. This is a required variable for GitLab." +msgstr "Хэш коммита для загрузки. Должен быть полным 160-битным, 40-символьным шестнадцатеричным хэшем sha1. Это обязательная переменная для GitLab." + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1900 +#, no-wrap +msgid "`(none)`" +msgstr "`(нет)`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1901 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4888 +#, no-wrap +msgid "`GL_SUBDIR`" +msgstr "`GL_SUBDIR`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1904 +#, no-wrap +msgid "" +"When the software needs an additional distribution file to be extracted within\n" +"`${WRKSRC}`, this variable can be used. See the examples in\n" +"\tcrossref:makefiles[makefile-master_sites-gitlab-multiple, Fetching Multiple Files from GitLab] for more information." +msgstr "" +"Когда программному обеспечению требуется дополнительный файл дистрибутива для извлечения в\n" +"`${WRKSRC}`, можно использовать эту переменную. Примеры можно найти в\n" +"\tcrossref:makefiles[makefile-master_sites-gitlab-multiple, Загрузка нескольких файлов из GitLab] для получения дополнительной информации." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1907 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4889 +#, no-wrap +msgid "`GL_TUPLE`" +msgstr "`GL_TUPLE`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1908 +#, no-wrap +msgid "`GL_TUPLE` allows putting `GL_SITE`, `GL_ACCOUNT`, `GL_PROJECT`, `GL_COMMIT`, and `GL_SUBDIR` into a single variable. The format is _site_`:`_account_`:`_project_`:`_commit_`:`_group_`/`_subdir_. The _site_`:` and `/`_subdir_ part is optional. It is helpful when there are more than one GitLab project from which to fetch." +msgstr "`GL_TUPLE` позволяет объединить `GL_SITE`, `GL_ACCOUNT`, `GL_PROJECT`, `GL_COMMIT` и `GL_SUBDIR` в одну переменную. Формат записи: _сайт_`:`_учётная запись_`:`_проект_`:`_коммит_`:`_группа_`/`_поддиректория_. Части _сайт_`:` и `/`_поддиректория_ являются необязательными. Это полезно, когда требуется загрузить данные из нескольких проектов GitLab." + +#. type: Block title +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1912 +#, no-wrap +msgid "Simple Use of `USE_GITLAB`" +msgstr "Простое использование `USE_GITLAB`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1916 +msgid "" +"While trying to make a port for version `1.14` of libsignon-glib from the " +"accounts-sso user on gitlab.com, at https://gitlab.com/accounts-sso/" +"libsignon-glib/[], The [.filename]#Makefile# would end up looking like this " +"for fetching the distribution files:" +msgstr "" +"Пытаясь создать порт для версии `1.14` библиотеки libsignon-glib от " +"пользователя accounts-sso на gitlab.com, по адресу https://gitlab.com/" +"accounts-sso/libsignon-glib/[], файл [.filename]#Makefile# будет выглядеть " +"следующим образом для загрузки дистрибутивных файлов:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1921 +#, no-wrap +msgid "" +"PORTNAME=\tlibsignon-glib\n" +"DISTVERSION=\t1.14\n" +msgstr "" +"PORTNAME=\tlibsignon-glib\n" +"DISTVERSION=\t1.14\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1925 +#, no-wrap +msgid "" +"USE_GITLAB=\tyes\n" +"GL_ACCOUNT=\taccounts-sso\n" +"GL_COMMIT=\te90302e342bfd27bc8c9132ab9d0ea3d8723fd03\n" +msgstr "" +"USE_GITLAB=\tyes\n" +"GL_ACCOUNT=\taccounts-sso\n" +"GL_COMMIT=\te90302e342bfd27bc8c9132ab9d0ea3d8723fd03\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1928 +msgid "" +"It will automatically have `MASTER_SITES` set to https://gitlab.com/" +"[gitlab.com] and `WRKSRC` to `${WRKDIR}/libsignon-glib-" +"e90302e342bfd27bc8c9132ab9d0ea3d8723fd03-" +"e90302e342bfd27bc8c9132ab9d0ea3d8723fd03`." +msgstr "" +"Он автоматически получит `MASTER_SITES`, установленный на https://gitlab.com/" +"[gitlab.com], и `WRKSRC` на `${WRKDIR}/libsignon-glib-" +"e90302e342bfd27bc8c9132ab9d0ea3d8723fd03-" +"e90302e342bfd27bc8c9132ab9d0ea3d8723fd03`." + +#. type: Block title +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1931 +#, no-wrap +msgid "More Complete Use of `USE_GITLAB`" +msgstr "Более полное использование `USE_GITLAB`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1936 +msgid "" +"A more complete use of the above if port had no versioning and foobar from " +"the foo user on project bar on a self hosted GitLab site `https://" +"gitlab.example.com/`, the [.filename]#Makefile# ends up looking like this " +"for fetching distribution files:" +msgstr "" +"Более полный пример использования вышеописанного, если порт не имеет " +"версионирования и foobar принадлежит пользователю foo в проекте bar на " +"самостоятельно размещенном сайте GitLab `https://gitlab.example.com/`, тогда " +"[.filename]#Makefile# будет выглядеть следующим образом для загрузки " +"дистрибутивных файлов:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1941 +#, no-wrap +msgid "" +"PORTNAME=\tfoobar\n" +"DISTVERSION=\tg20170906\n" +msgstr "" +"PORTNAME=\tfoobar\n" +"DISTVERSION=\tg20170906\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1947 +#, no-wrap +msgid "" +"USE_GITLAB=\tyes\n" +"GL_SITE=\thttps://gitlab.example.com\n" +"GL_ACCOUNT=\tfoo\n" +"GL_PROJECT=\tbar\n" +"GL_COMMIT=\t9c1669ce60c3f4f5eb43df874d7314483fb3f8a6\n" +msgstr "" +"USE_GITLAB=\tyes\n" +"GL_SITE=\thttps://gitlab.example.com\n" +"GL_ACCOUNT=\tfoo\n" +"GL_PROJECT=\tbar\n" +"GL_COMMIT=\t9c1669ce60c3f4f5eb43df874d7314483fb3f8a6\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1950 +msgid "" +"It will have `MASTER_SITES` set to `\"https://gitlab.example.com\"` and " +"`WRKSRC` to `${WRKDIR}/" +"bar-9c1669ce60c3f4f5eb43df874d7314483fb3f8a6-9c1669ce60c3f4f5eb43df874d7314483fb3f8a6`." +msgstr "" +"В нем будет установлено `MASTER_SITES` в `\"https://gitlab.example.com\"` и " +"`WRKSRC` в `${WRKDIR}/" +"bar-9c1669ce60c3f4f5eb43df874d7314483fb3f8a6-9c1669ce60c3f4f5eb43df874d7314483fb3f8a6`." + +#. type: delimited block = 6 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1954 +msgid "" +"`20170906` is the date of the commit referenced in `GL_COMMIT`, not the date " +"the [.filename]#Makefile# is edited, or the date the commit to the FreeBSD " +"ports tree is made." +msgstr "" +"`20170906` — это дата коммита, указанного в `GL_COMMIT`, а не дата " +"редактирования файла [.filename]#Makefile# или дата коммита в дерево портов " +"FreeBSD." + +#. type: delimited block = 6 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1959 +msgid "" +"``GL_SITE``'s protocol, port and webroot can all be modified in the same " +"variable." +msgstr "" +"Протокол, порт и корневая директория веб-сервера ``GL_SITE`` могут быть " +"изменены в той же переменной." + +#. type: Title ==== +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1964 +#, no-wrap +msgid "Fetching Multiple Files from GitLab" +msgstr "Извлечение нескольких файлов из GitLab" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1969 +msgid "" +"The `USE_GITLAB` framework also supports fetching multiple distribution " +"files from different places from GitLab and GitLab hosted sites. It works " +"in a way very similar to crossref:makefiles[porting-master-sites-n, Multiple " +"Distribution or Patches Files from Multiple Locations] and " +"crossref:makefiles[makefile-master_sites-gitlab-multiple, Fetching Multiple " +"Files from GitLab]." +msgstr "" +"Фреймворк `USE_GITLAB` также поддерживает загрузку нескольких файлов " +"дистрибутивов из различных мест GitLab и сайтов, размещённых на GitLab. Он " +"работает очень похоже на crossref:makefiles[porting-master-sites-n, " +"Несколько файлов дистрибутивов или патчей из разных местоположений] и " +"crossref:makefiles[makefile-master_sites-gitlab-multiple, Загрузка " +"нескольких файлов из GitLab]." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1973 +msgid "" +"Multiple values are added to `GL_SITE`, `GL_ACCOUNT`, `GL_PROJECT` and " +"`GL_COMMIT`. Each different value is assigned a group. " +"crossref:makefiles[makefile-master_sites-gitlab-description,`USE_GITLAB` " +"Description]." +msgstr "" +"В `GL_SITE`, `GL_ACCOUNT`, `GL_PROJECT` и `GL_COMMIT` добавляются " +"множественные значения. Каждое уникальное значение назначается группе. " +"crossref:makefiles[makefile-master_sites-gitlab-description,Описание " +"`USE_GITLAB`]." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1976 +msgid "" +"`GL_TUPLE` can also be used when there are a lot of distribution files. It " +"helps keep the site, account, project, commit, and group information at the " +"same place." +msgstr "" +"`GL_TUPLE` также может использоваться, когда имеется множество файлов " +"дистрибутива. Это помогает хранить информацию о сайте, учётной записи, " +"проекте, коммите и группе в одном месте." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1995 +msgid "" +"When fetching multiple files using GitLab, sometimes the default " +"distribution file is not fetched from a GitLab site. To disable fetching " +"the default distribution, set:" +msgstr "" +"При получении нескольких файлов с использованием GitLab иногда файл " +"дистрибутива по умолчанию не загружается с сайта GitLab. Чтобы отключить " +"загрузку файла дистрибутива по умолчанию, установите:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1999 +#, no-wrap +msgid "USE_GITLAB=\tnodefault\n" +msgstr "USE_GITLAB=\tnodefault\n" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2006 +msgid "" +"When using `USE_GITLAB=nodefault`, the [.filename]#Makefile# must set " +"`DISTFILES` in its crossref:makefiles[porting-order-portname,top block]. " +"The definition should be:" +msgstr "" +"При использовании `USE_GITLAB=nodefault`, [.filename]#Makefile# должен " +"устанавливать `DISTFILES` в своем crossref:makefiles[porting-order-" +"portname,верхнем блоке]. Определение должно быть следующим:" + +#. type: Block title +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2015 +#, no-wrap +msgid "Use of `USE_GITLAB` with Multiple Distribution Files" +msgstr "Использование `USE_GITLAB` с несколькими файлами дистрибутива" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2021 +msgid "" +"From time to time, there is a need to fetch more than one distribution " +"file. For example, when the upstream git repository uses submodules. This " +"can be done easily using groups in the `GL_*` variables:" +msgstr "" +"Время от времени возникает необходимость загрузить более одного файла " +"дистрибутива. Например, когда вышестоящий git-репозиторий использует " +"подмодули. Это можно легко сделать с помощью групп в переменных `GL_*`:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2033 +#, no-wrap +msgid "" +"USE_GITLAB=\tyes\n" +"GL_SITE=\thttps://gitlab.example.com:9434/gitlab:icons\n" +"GL_ACCOUNT=\tbar:icons,contrib\n" +"GL_PROJECT=\tfoo-icons:icons foo-contrib:contrib\n" +"GL_COMMIT=\tc189207a55da45305c884fe2b50e086fcad4724b ae7368cab1ca7ca754b38d49da064df87968ffe4:icons 9e4dd76ad9b38f33fdb417a4c01935958d5acd2a:contrib\n" +"GL_SUBDIR=\text/icons:icons\n" +msgstr "" +"USE_GITLAB=\tyes\n" +"GL_SITE=\thttps://gitlab.example.com:9434/gitlab:icons\n" +"GL_ACCOUNT=\tbar:icons,contrib\n" +"GL_PROJECT=\tfoo-icons:icons foo-contrib:contrib\n" +"GL_COMMIT=\tc189207a55da45305c884fe2b50e086fcad4724b ae7368cab1ca7ca754b38d49da064df87968ffe4:icons 9e4dd76ad9b38f33fdb417a4c01935958d5acd2a:contrib\n" +"GL_SUBDIR=\text/icons:icons\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2035 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2079 +#, no-wrap +msgid "CONFIGURE_ARGS= --with-contrib=${WRKSRC_contrib}\n" +msgstr "CONFIGURE_ARGS= --with-contrib=${WRKSRC_contrib}\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2042 +msgid "" +"This will fetch two distribution files from gitlab.com and one from " +"`gitlab.example.com` hosting GitLab. The default one comes from " +"[.filename]#https://gitlab.com/foo/foo# and commit is " +"`c189207a55da45305c884fe2b50e086fcad4724b`. The second one, with the " +"`icons` group, comes from [.filename]#https://gitlab.example.com:9434/gitlab/" +"bar/foo-icons# and commit is `ae7368cab1ca7ca754b38d49da064df87968ffe4`. " +"The third one comes from [.filename]#https://gitlab.com/bar/foo-contrib# and " +"is commit `9e4dd76ad9b38f33fdb417a4c01935958d5acd2a`. The distribution " +"files are named [.filename]#foo-foo-" +"c189207a55da45305c884fe2b50e086fcad4724b_GL0.tar.gz#, [.filename]#bar-foo-" +"icons-ae7368cab1ca7ca754b38d49da064df87968ffe4_GL0.tar.gz#, and " +"[.filename]#bar-foo-" +"contrib-9e4dd76ad9b38f33fdb417a4c01935958d5acd2a_GL0.tar.gz#." +msgstr "" +"Это загрузит два файла дистрибутива с gitlab.com и один с " +"`gitlab.example.com`, где размещается GitLab. По умолчанию файл берется из " +"[.filename]#https://gitlab.com/foo/foo#, а коммит — " +"`c189207a55da45305c884fe2b50e086fcad4724b`. Второй файл, из группы `icons`, " +"берется из [.filename]#https://gitlab.example.com:9434/gitlab/bar/foo-" +"icons#, а коммит — `ae7368cab1ca7ca754b38d49da064df87968ffe4`. Третий файл " +"берется из [.filename]#https://gitlab.com/bar/foo-contrib#, а коммит — " +"`9e4dd76ad9b38f33fdb417a4c01935958d5acd2a`. Файлы дистрибутива называются " +"[.filename]#foo-foo-c189207a55da45305c884fe2b50e086fcad4724b_GL0.tar.gz#, " +"[.filename]#bar-foo-icons-" +"ae7368cab1ca7ca754b38d49da064df87968ffe4_GL0.tar.gz# и [.filename]#bar-foo-" +"contrib-9e4dd76ad9b38f33fdb417a4c01935958d5acd2a_GL0.tar.gz#." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2048 +msgid "" +"All the distribution files are extracted in `${WRKDIR}` in their respective " +"subdirectories. The default file is still extracted in `${WRKSRC}`, in this " +"case, [.filename]#${WRKDIR}/foo-c189207a55da45305c884fe2b50e086fcad4724b-" +"c189207a55da45305c884fe2b50e086fcad4724b#. Each additional distribution " +"file is extracted in `${WRKSRC_group}`. Here, for the `icons` group, it is " +"called `${WRKSRC_icons}` and it contains [.filename]#${WRKDIR}/foo-icons-" +"ae7368cab1ca7ca754b38d49da064df87968ffe4-" +"ae7368cab1ca7ca754b38d49da064df87968ffe4#. The file with the `contrib` " +"group is called `${WRKSRC_contrib}` and contains `${WRKDIR}/foo-" +"contrib-9e4dd76ad9b38f33fdb417a4c01935958d5acd2a-9e4dd76ad9b38f33fdb417a4c01935958d5acd2a`." +msgstr "" +"Все файлы дистрибутива извлекаются в `${WRKDIR}` в соответствующих " +"подкаталогах. Основной файл по-прежнему извлекается в `${WRKSRC}`, в данном " +"случае это [.filename]#${WRKDIR}/foo-" +"c189207a55da45305c884fe2b50e086fcad4724b-" +"c189207a55da45305c884fe2b50e086fcad4724b#. Каждый дополнительный файл " +"дистрибутива извлекается в `${WRKSRC_group}`. Здесь для группы `icons` он " +"называется `${WRKSRC_icons}` и содержит [.filename]#${WRKDIR}/foo-icons-" +"ae7368cab1ca7ca754b38d49da064df87968ffe4-" +"ae7368cab1ca7ca754b38d49da064df87968ffe4#. Файл группы `contrib` называется " +"`${WRKSRC_contrib}` и содержит `${WRKDIR}/foo-" +"contrib-9e4dd76ad9b38f33fdb417a4c01935958d5acd2a-9e4dd76ad9b38f33fdb417a4c01935958d5acd2a`." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2052 +msgid "" +"The software's build system expects to find the icons in a [.filename]#ext/" +"icons# subdirectory in its sources, so `GL_SUBDIR` is used. `GL_SUBDIR` " +"makes sure that [.filename]#ext# exists, but that [.filename]#ext/icons# " +"does not already exist. Then it does this:" +msgstr "" +"Система сборки программного обеспечения ожидает найти иконки в подкаталоге " +"[.filename]#ext/icons# в своих исходниках, поэтому используется `GL_SUBDIR`. " +"`GL_SUBDIR` гарантирует, что [.filename]#ext# существует, но [.filename]#ext/" +"icons# ещё не существует. Затем она выполняет следующее:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2057 +#, no-wrap +msgid "" +"post-extract:\n" +" @${MV} ${WRKSRC_icons} ${WRKSRC}/ext/icons\n" +msgstr "" +"post-extract:\n" +" @${MV} ${WRKSRC_icons} ${WRKSRC}/ext/icons\n" + +#. type: Block title +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2062 +#, no-wrap +msgid "Use of `USE_GITLAB` with Multiple Distribution Files Using `GL_TUPLE`" +msgstr "Использование `USE_GITLAB` с несколькими файлами дистрибуции с помощью `GL_TUPLE`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2067 +msgid "" +"This is functionally equivalent to crossref:makefiles[makefile-master_sites-" +"gitlab-multi,Use of `USE_GITLAB` with Multiple Distribution Files], but " +"using `GL_TUPLE`:" +msgstr "" +"Это функционально эквивалентно crossref:makefiles[makefile-master_sites-" +"gitlab-multi,Использование `USE_GITLAB` с несколькими файлами дистрибуции], " +"но с использованием `GL_TUPLE`:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2077 +#, no-wrap +msgid "" +"USE_GITLAB=\tyes\n" +"GL_COMMIT=\tc189207a55da45305c884fe2b50e086fcad4724b\n" +"GL_TUPLE=\thttps://gitlab.example.com:9434/gitlab:bar:foo-icons:ae7368cab1ca7ca754b38d49da064df87968ffe4:icons/ext/icons \\\n" +"\t\tbar:foo-contrib:9e4dd76ad9b38f33fdb417a4c01935958d5acd2a:contrib\n" +msgstr "" +"USE_GITLAB=\tyes\n" +"GL_COMMIT=\tc189207a55da45305c884fe2b50e086fcad4724b\n" +"GL_TUPLE=\thttps://gitlab.example.com:9434/gitlab:bar:foo-icons:ae7368cab1ca7ca754b38d49da064df87968ffe4:icons/ext/icons \\\n" +"\t\tbar:foo-contrib:9e4dd76ad9b38f33fdb417a4c01935958d5acd2a:contrib\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2083 +msgid "" +"Grouping was used in the previous example with `bar:icons,contrib`. Some " +"redundant information is present with `GL_TUPLE` because grouping is not " +"possible." +msgstr "" +"В предыдущем примере использовалась группировка с `bar:icons,contrib`. " +"Некоторую избыточную информацию приходится указывать с `GL_TUPLE`, так как " +"группировка невозможна." + +#. type: Title === +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2086 +#, no-wrap +msgid "`EXTRACT_SUFX`" +msgstr "`EXTRACT_SUFX`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2089 +msgid "" +"If there is one distribution file, and it uses an odd suffix to indicate the " +"compression mechanism, set `EXTRACT_SUFX`." +msgstr "" +"Если имеется один файл дистрибутива, и он использует нестандартное суффикс " +"для указания механизма сжатия, установите `EXTRACT_SUFX`." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2091 +msgid "" +"For example, if the distribution file was named [.filename]#foo.tar.gzip# " +"instead of the more normal [.filename]#foo.tar.gz#, write:" +msgstr "" +"Например, если файл дистрибутива был назван [.filename]#foo.tar.gzip# вместо " +"более привычного [.filename]#foo.tar.gz#, напишите:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2096 +#, no-wrap +msgid "" +"DISTNAME=\tfoo\n" +"EXTRACT_SUFX=\t.tar.gzip\n" +msgstr "" +"DISTNAME=\tfoo\n" +"EXTRACT_SUFX=\t.tar.gzip\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2100 +msgid "" +"The `USES=tar[:__xxx__]`, `USES=lha` or `USES=zip` automatically set " +"`EXTRACT_SUFX` to the most common archives extensions as necessary, see " +"crossref:uses[uses,Using `USES` Macros] for more details. If neither of " +"these are set then `EXTRACT_SUFX` defaults to `.tar.gz`." +msgstr "" +"`USES=tar[:__xxx__]`, `USES=lha` или `USES=zip` автоматически устанавливают " +"`EXTRACT_SUFX` в наиболее распространённые расширения архивов при " +"необходимости, подробнее см. crossref:uses[uses,Использование макросов " +"`USES`]. Если ни один из них не задан, `EXTRACT_SUFX` по умолчанию принимает " +"значение `.tar.gz`." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2104 +msgid "As `EXTRACT_SUFX` is only used in `DISTFILES`, only set one of them.." +msgstr "" +"Как `EXTRACT_SUFX` используется только в `DISTFILES`, следует задавать " +"только один из них." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2107 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4876 +#, no-wrap +msgid "`DISTFILES`" +msgstr "`DISTFILES`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2112 +msgid "" +"Sometimes the names of the files to be downloaded have no resemblance to the " +"name of the port. For example, it might be called " +"[.filename]#source.tar.gz# or similar. In other cases the application's " +"source code might be in several different archives, all of which must be " +"downloaded." +msgstr "" +"Иногда названия файлов для загрузки не имеют ничего общего с именем порта. " +"Например, файл может называться [.filename]#source.tar.gz# или подобным " +"образом. В других случаях исходный код приложения может быть разбит на " +"несколько различных архивов, все из которых необходимо загрузить." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2114 +msgid "" +"If this is the case, set `DISTFILES` to be a space separated list of all the " +"files that must be downloaded." +msgstr "" +"Если это так, установите `DISTFILES` как список разделённых пробелами " +"файлов, которые необходимо загрузить." + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2118 +#, no-wrap +msgid "DISTFILES=\tsource1.tar.gz source2.tar.gz\n" +msgstr "DISTFILES=\tsource1.tar.gz source2.tar.gz\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2121 +msgid "" +"If not explicitly set, `DISTFILES` defaults to `${DISTNAME}${EXTRACT_SUFX}`." +msgstr "" +"Если явно не задано, `DISTFILES` по умолчанию равно `${DISTNAME}$" +"{EXTRACT_SUFX}`." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2123 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4877 +#, no-wrap +msgid "`EXTRACT_ONLY`" +msgstr "`EXTRACT_ONLY`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2126 +msgid "" +"If only some of the `DISTFILES` must be extracted-for example, one of them " +"is the source code, while another is an uncompressed document-list the " +"filenames that must be extracted in `EXTRACT_ONLY`." +msgstr "" +"Если необходимо извлечь только некоторые из `DISTFILES` — например, один из " +"них является исходным кодом, а другой — несжатым документом — укажите имена " +"файлов, которые нужно извлечь, в `EXTRACT_ONLY`." + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2131 +#, no-wrap +msgid "" +"DISTFILES=\tsource.tar.gz manual.html\n" +"EXTRACT_ONLY=\tsource.tar.gz\n" +msgstr "" +"DISTFILES=\tsource.tar.gz manual.html\n" +"EXTRACT_ONLY=\tsource.tar.gz\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2134 +msgid "" +"When none of the `DISTFILES` need to be uncompressed, set `EXTRACT_ONLY` to " +"the empty string." +msgstr "" +"Если ни один из `DISTFILES` не требует распаковки, установите `EXTRACT_ONLY` " +"в пустую строку." + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2138 +#, no-wrap +msgid "EXTRACT_ONLY=\n" +msgstr "EXTRACT_ONLY=\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2141 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4898 +#, no-wrap +msgid "`PATCHFILES`" +msgstr "`PATCHFILES`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2144 +msgid "" +"If the port requires some additional patches that are available by FTP or " +"HTTP, set `PATCHFILES` to the names of the files and `PATCH_SITES` to the " +"URL of the directory that contains them (the format is the same as " +"`MASTER_SITES`)." +msgstr "" +"Если порт требует дополнительных исправлений, доступных через FTP или HTTP, " +"установите `PATCHFILES` в имена файлов, а `PATCH_SITES` — в URL каталога, " +"содержащего их (формат такой же, как у `MASTER_SITES`)." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2147 +msgid "" +"If the patch is not relative to the top of the source tree (that is, " +"`WRKSRC`) because it contains some extra pathnames, set `PATCH_DIST_STRIP` " +"accordingly. For instance, if all the pathnames in the patch have an extra " +"`foozolix-1.0/` in front of the filenames, then set `PATCH_DIST_STRIP=-p1`." +msgstr "" +"Если патч не относится к корню исходного дерева (то есть к `WRKSRC`), потому " +"что содержит дополнительные пути, установите `PATCH_DIST_STRIP` " +"соответствующим образом. Например, если все пути в патче имеют " +"дополнительный префикс `foozolix-1.0/` перед именами файлов, задайте " +"`PATCH_DIST_STRIP=-p1`." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2149 +msgid "" +"Do not worry if the patches are compressed; they will be decompressed " +"automatically if the filenames end with [.filename]#.Z#, [.filename]#.gz#, " +"[.filename]#.bz2# or [.filename]#.xz#." +msgstr "" +"Не беспокойтесь, если патчи сжаты; они будут автоматически распакованы, если " +"их имена заканчиваются на [.filename]#.Z#, [.filename]#.gz#, " +"[.filename]#.bz2# или [.filename]#.xz#." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2155 +msgid "" +"If the patch is distributed with some other files, such as documentation, in " +"a compressed tarball, using `PATCHFILES` is not possible. If that is the " +"case, add the name and the location of the patch tarball to `DISTFILES` and " +"`MASTER_SITES`. Then, use `EXTRA_PATCHES` to point to those files and " +"[.filename]#bsd.port.mk# will automatically apply them. In particular, do " +"_not_ copy patch files into [.filename]#${PATCHDIR}#. That directory may " +"not be writable." +msgstr "" +"Если патч распространяется вместе с другими файлами, такими как " +"документация, в сжатом tarball, использование `PATCHFILES` невозможно. В " +"таком случае добавьте имя и расположение tarball с патчами в `DISTFILES` и " +"`MASTER_SITES`. Затем используйте `EXTRA_PATCHES`, чтобы указать на эти " +"файлы, и [.filename]#bsd.port.mk# автоматически применит их. В частности, " +"_не_ копируйте файлы патчей в [.filename]#${PATCHDIR}#. Этот каталог может " +"быть недоступен для записи." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2159 +msgid "" +"If there are multiple patches and they need mixed values for the strip " +"parameter, it can be added alongside the patch name in `PATCHFILES`, e.g:" +msgstr "" +"Если есть несколько патчей и для них требуются разные значения параметра " +"strip, его можно добавить рядом с именем патча в `PATCHFILES`, например:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2163 +#, no-wrap +msgid "PATCHFILES=\tpatch1 patch2:-p1\n" +msgstr "PATCHFILES=\tpatch1 patch2:-p1\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2166 +msgid "" +"This does not conflict with crossref:makefiles[porting-master-sites-n,the " +"master site grouping feature], adding a group also works:" +msgstr "" +"Это не конфликтует с crossref:makefiles[porting-master-sites-n,функцией " +"группировки мастер-сайтов], добавление группы также работает:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2170 +#, no-wrap +msgid "PATCHFILES=\tpatch2:-p1:source2\n" +msgstr "PATCHFILES=\tpatch2:-p1:source2\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2178 +msgid "" +"The tarball will have been extracted alongside the regular source by then, " +"so there is no need to explicitly extract it if it is a regular compressed " +"tarball. Take extra care not to overwrite something that already exists in " +"that directory if extracting it manually. Also, do not forget to add a " +"command to remove the copied patch in the `pre-clean` target." +msgstr "" +"Tarball уже будет распакован вместе с обычными исходными кодами, поэтому нет " +"необходимости явно его распаковывать, если это обычный сжатый tarball. " +"Будьте особенно осторожны, чтобы не перезаписать существующие файлы в этом " +"каталоге при ручной распаковке. Также не забудьте добавить команду для " +"удаления скопированного патча в цель `pre-clean`." + +#. type: Title === +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2181 +#, no-wrap +msgid "Multiple Distribution or Patches Files from Multiple Locations" +msgstr "Несколько файлов дистрибутивов или исправлений из нескольких местоположений" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2184 +msgid "" +"(Consider this to be a somewhat \"advanced topic\"; those new to this " +"document may wish to skip this section at first)." +msgstr "" +"(Считайте, что это несколько «продвинутая тема»; тем, кто впервые читает " +"этот документ, возможно, стоит сначала пропустить этот раздел)." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2187 +msgid "" +"This section has information on the fetching mechanism known as both " +"`MASTER_SITES:n` and `MASTER_SITES_NN`. We will refer to this mechanism as " +"`MASTER_SITES:n`." +msgstr "" +"Этот раздел содержит информацию о механизме загрузки, известном как " +"`MASTER_SITES:n` и `MASTER_SITES_NN`. Мы будем называть этот механизм " +"`MASTER_SITES:n`." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2192 +msgid "" +"A little background first. OpenBSD has a neat feature inside `DISTFILES` " +"and `PATCHFILES` which allows files and patches to be postfixed with `:n` " +"identifiers. Here, `n` can be any word containing `[0-9a-zA-Z_]` and denote " +"a group designation. For example:" +msgstr "" +"Небольшая предыстория. В OpenBSD есть удобная функция внутри `DISTFILES` и " +"`PATCHFILES`, которая позволяет добавлять постфикс `:n` к файлам и патчам. " +"Здесь `n` может быть любым словом, содержащим `[0-9a-zA-Z_]`, и обозначать " +"группу. Например:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2196 +#, no-wrap +msgid "DISTFILES=\talpha:0 beta:1\n" +msgstr "DISTFILES=\talpha:0 beta:1\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2199 +msgid "" +"In OpenBSD, distribution file [.filename]#alpha# will be associated with " +"variable `MASTER_SITES0` instead of our common `MASTER_SITES` and " +"[.filename]#beta# with `MASTER_SITES1`." +msgstr "" +"В OpenBSD файл дистрибутива [.filename]#alpha# будет связан с переменной " +"`MASTER_SITES0`, а не с нашей общей `MASTER_SITES`, а [.filename]#beta# — с " +"`MASTER_SITES1`." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2201 +msgid "" +"This is a very interesting feature which can decrease that endless search " +"for the correct download site." +msgstr "" +"Это очень интересная функция, которая может сократить бесконечные поиски " +"нужного сайта для загрузки." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2204 +msgid "" +"Just picture 2 files in `DISTFILES` and 20 sites in `MASTER_SITES`, the " +"sites slow as hell where [.filename]#beta# is carried by all sites in " +"`MASTER_SITES`, and [.filename]#alpha# can only be found in the 20th site. " +"It would be such a waste to check all of them if the maintainer knew this " +"beforehand, would it not? Not a good start for that lovely weekend!" +msgstr "" +"Представьте 2 файла в `DISTFILES` и 20 сайтов в `MASTER_SITES`, причём сайты " +"медленные как черепаха, где [.filename]#beta# есть на всех сайтах из " +"`MASTER_SITES`, а [.filename]#alpha# можно найти только на 20-м сайте. Было " +"бы так обидно проверять их все, если бы сопровождающий знал это заранее, не " +"так ли? Не самое лучшее начало для чудесных выходных!" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2207 +msgid "" +"Now that you have the idea, just imagine more `DISTFILES` and more " +"`MASTER_SITES`. Surely our \"distfiles survey meister\" would appreciate " +"the relief to network strain that this would bring." +msgstr "" +"Теперь, когда вы поняли идею, представьте больше `DISTFILES` и больше " +"`MASTER_SITES`. Безусловно, наш \"мастер по исследованию distfiles\" оценил " +"бы снижение нагрузки на сеть, которое это принесло бы." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2210 +msgid "" +"In the next sections, information will follow on the FreeBSD implementation " +"of this idea. We improved a bit on OpenBSD's concept." +msgstr "" +"В следующих разделах будет приведена информация о реализации этой идеи в " +"FreeBSD. Мы немного улучшили концепцию OpenBSD." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2215 +msgid "" +"The group names cannot have dashes in them (`-`), in fact, they cannot have " +"any characters out of the `[a-zA-Z0-9_]` range. This is because, while " +"man:make[1] is ok with variable names containing dashes, man:sh[1] is not." +msgstr "" +"Имена групп не могут содержать дефисы (`-`), более того, они не могут " +"содержать любые символы вне диапазона `[a-zA-Z0-9_]`. Это связано с тем, " +"что, хотя man:make[1] допускает использование имён переменных с дефисами, " +"man:sh[1] — нет." + +#. type: Title ==== +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2218 +#, no-wrap +msgid "Simplified Information" +msgstr "Упрощенная информация" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2225 +msgid "" +"This section explains how to quickly prepare fine grained fetching of " +"multiple distribution files and patches from different sites and " +"subdirectories. We describe here a case of simplified `MASTER_SITES:n` " +"usage. This will be sufficient for most scenarios. More detailed " +"information are available in crossref:makefiles[ports-master-sites-n-" +"detailed, Detailed Information]." +msgstr "" +"В этом разделе объясняется, как быстро настроить детализированное получение " +"нескольких файлов дистрибутивов и патчей с разных сайтов и подкаталогов. " +"Здесь описывается случай упрощённого использования `MASTER_SITES:n`. Этого " +"будет достаточно для большинства сценариев. Более подробная информация " +"доступна в crossref:makefiles[ports-master-sites-n-detailed, Подробная " +"Информация]." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2229 +msgid "" +"Some applications consist of multiple distribution files that must be " +"downloaded from a number of different sites. For example, Ghostscript " +"consists of the core of the program, and then a large number of driver files " +"that are used depending on the user's printer. Some of these driver files " +"are supplied with the core, but many others must be downloaded from a " +"variety of different sites." +msgstr "" +"Некоторые приложения состоят из нескольких распространяемых файлов, которые " +"необходимо загрузить с различных сайтов. Например, Ghostscript включает " +"основную часть программы и множество драйверов, используемых в зависимости " +"от принтера пользователя. Некоторые из этих драйверов поставляются вместе с " +"основной частью, но многие другие необходимо загружать с различных сайтов." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2232 +msgid "" +"To support this, each entry in `DISTFILES` may be followed by a colon and a " +"\"group name\". Each site listed in `MASTER_SITES` is then followed by a " +"colon, and the group that indicates which distribution files are downloaded " +"from this site." +msgstr "" +"Для поддержки этого, каждая запись в `DISTFILES` может сопровождаться " +"двоеточием и \"именем группы\". Затем каждый сайт, указанный в " +"`MASTER_SITES`, сопровождается двоеточием и группой, которая указывает, " +"какие файлы дистрибутива загружаются с данного сайта." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2236 +msgid "" +"For example, consider an application with the source split in two parts, " +"[.filename]#source1.tar.gz# and [.filename]#source2.tar.gz#, which must be " +"downloaded from two different sites. The port's [.filename]#Makefile# would " +"include lines like crossref:makefiles[ports-master-sites-n-example-simple-" +"use-one-file-per-site,Simplified Use of `MASTER_SITES:n` with One File Per " +"Site]." +msgstr "" +"Например, рассмотрим приложение, исходный код которого разделён на две " +"части: [.filename]#source1.tar.gz# и [.filename]#source2.tar.gz#, которые " +"необходимо загрузить с двух разных сайтов. В [.filename]#Makefile# порта " +"будут присутствовать строки, подобные crossref:makefiles[ports-master-sites-" +"n-example-simple-use-one-file-per-site,Упрощённое использование " +"`MASTER_SITES:n` с одним файлом на сайт]." + +#. type: Block title +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2238 +#, no-wrap +msgid "Simplified Use of `MASTER_SITES:n` with One File Per Site" +msgstr "Упрощённое использование `MASTER_SITES:n` с одним файлом на сайт" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2248 +#, no-wrap +msgid "" +"MASTER_SITES=\tftp://ftp1.example.com/:source1 \\\n" +"\t\thttp://www.example.com/:source2\n" +"DISTFILES=\tsource1.tar.gz:source1 \\\n" +"\t\tsource2.tar.gz:source2\n" +msgstr "" +"MASTER_SITES=\tftp://ftp1.example.com/:source1 \\\n" +"\t\thttp://www.example.com/:source2\n" +"DISTFILES=\tsource1.tar.gz:source1 \\\n" +"\t\tsource2.tar.gz:source2\n" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2256 +msgid "" +"Multiple distribution files can have the same group. Continuing the " +"previous example, suppose that there was a third distfile, " +"[.filename]#source3.tar.gz#, that is downloaded from `ftp.example2.com`. " +"The [.filename]#Makefile# would then be written like " +"crossref:makefiles[ports-master-sites-n-example-simple-use-more-than-one-" +"file-per-site,Simplified Use of `MASTER_SITES:n` with More Than One File Per " +"Site]." +msgstr "" +"Несколько файлов дистрибутивов могут принадлежать одной группе. Продолжая " +"предыдущий пример, предположим, что существует третий файл дистрибутива " +"[.filename]#source3.tar.gz#, который загружается с `ftp.example2.com`. Тогда " +"[.filename]#Makefile# будет записан, как показано в crossref:makefiles[ports-" +"master-sites-n-example-simple-use-more-than-one-file-per-site,Упрощённое " +"использование `MASTER_SITES:n` с несколькими файлами на один сайт]." + +#. type: Block title +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2258 +#, no-wrap +msgid "Simplified Use of `MASTER_SITES:n` with More Than One File Per Site" +msgstr "Упрощённое использование `MASTER_SITES:n` с несколькими файлами на одном сайте" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2269 +#, no-wrap +msgid "" +"MASTER_SITES=\tftp://ftp.example.com/:source1 \\\n" +"\t\thttp://www.example.com/:source2\n" +"DISTFILES=\tsource1.tar.gz:source1 \\\n" +"\t\tsource2.tar.gz:source2 \\\n" +"\t\tsource3.tar.gz:source2\n" +msgstr "" +"MASTER_SITES=\tftp://ftp.example.com/:source1 \\\n" +"\t\thttp://www.example.com/:source2\n" +"DISTFILES=\tsource1.tar.gz:source1 \\\n" +"\t\tsource2.tar.gz:source2 \\\n" +"\t\tsource3.tar.gz:source2\n" + +#. type: Title ==== +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2274 +#, no-wrap +msgid "Detailed Information" +msgstr "Подробная информация" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2277 +msgid "" +"Okay, so the previous example did not reflect the new port's needs? In this " +"section we will explain in detail how the fine grained fetching mechanism " +"`MASTER_SITES:n` works and how it can be used." +msgstr "" +"Хорошо, значит, предыдущий пример не отражал потребности нового порта? В " +"этом разделе мы подробно объясним, как работает механизм детализированного " +"получения `MASTER_SITES:n` и как его можно использовать." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2279 +msgid "" +"Elements can be postfixed with `:__n__` where _n_ is `[^:,]\\+`, that is, " +"_n_ could conceptually be any alphanumeric string but we will limit it to " +"`[a-zA-Z_][0-9a-zA-Z_]+` for now." +msgstr "" +"Элементы могут иметь постфикс `:__n__`, где _n_ — это `[^:,]+`, то есть _n_ " +"концептуально может быть любой буквенно-цифровой строкой, но пока мы " +"ограничим её `[a-zA-Z_][0-9a-zA-Z_]+`." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2281 +msgid "" +"Moreover, string matching is case sensitive; that is, `n` is different from " +"`N`." +msgstr "" +"Более того, сравнение строк чувствительно к регистру; то есть, `n` " +"отличается от `N`." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2287 +msgid "" +"However, these words cannot be used for postfixing purposes since they yield " +"special meaning: `default`, `all` and `ALL` (they are used internally in " +"item crossref:makefiles[porting-master-sites-n-what-changes-in-port-targets, " +"ii]). Furthermore, `DEFAULT` is a special purpose word (check item " +"crossref:makefiles[porting-master-sites-n-DEFAULT-group,3])." +msgstr "" +"Однако эти слова не могут использоваться для постфиксных целей, так как " +"имеют специальное значение: `default`, `all` и `ALL` (они используются " +"внутри системы, см. crossref:makefiles[porting-master-sites-n-what-changes-" +"in-port-targets, ii]). Кроме того, `DEFAULT` является словом специального " +"назначения (проверьте пункт crossref:makefiles[porting-master-sites-n-" +"DEFAULT-group,3])." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2288 +msgid "" +"Elements postfixed with `:n` belong to the group `n`, `:m` belong to group " +"`m` and so forth." +msgstr "" +"Элементы с постфиксом `:n` принадлежат группе `n`, `:m` — группе `m` и так " +"далее." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2294 +msgid "" +"Elements without a postfix are groupless, they all belong to the special " +"group `DEFAULT`. Any elements postfixed with `DEFAULT`, is just being " +"redundant unless an element belongs to both `DEFAULT` and other groups at " +"the same time (check item crossref:makefiles[porting-master-sites-n-comma-" +"operator,5])." +msgstr "" +"Элементы без постфикса не принадлежат к группам, все они относятся к " +"специальной группе `DEFAULT`. Элементы с постфиксом `DEFAULT` избыточны, за " +"исключением случаев, когда элемент одновременно принадлежит и к `DEFAULT`, и " +"к другим группам (см. пункт crossref:makefiles[porting-master-sites-n-comma-" +"operator,5])." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2296 +msgid "These examples are equivalent but the first one is preferred:" +msgstr "Эти примеры эквивалентны, но первый предпочтительнее:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2300 +#, no-wrap +msgid "MASTER_SITES=\talpha\n" +msgstr "MASTER_SITES=\talpha\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2305 +#, no-wrap +msgid "MASTER_SITES=\talpha:DEFAULT\n" +msgstr "MASTER_SITES=\talpha:DEFAULT\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2308 +msgid "" +"Groups are not exclusive, an element may belong to several different groups " +"at the same time and a group can either have either several different " +"elements or none at all." +msgstr "" +"Группы не являются исключительными, элемент может принадлежать нескольким " +"разным группам одновременно, а группа может содержать несколько разных " +"элементов или не содержать их вовсе." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2311 +msgid "" +"When an element belongs to several groups at the same time, use the comma " +"operator (`,`)." +msgstr "" +"Когда элемент принадлежит нескольким группам одновременно, используйте " +"оператор запятую (`,`)." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2314 +msgid "" +"Instead of repeating it several times, each time with a different postfix, " +"we can list several groups at once in a single postfix. For instance, " +"`:m,n,o` marks an element that belongs to group `m`, `n` and `o`." +msgstr "" +"Вместо повторения несколько раз, каждый раз с разным постфиксом, мы можем " +"перечислить несколько групп сразу в одном постфиксе. Например, `:m,n,o` " +"обозначает элемент, принадлежащий группам `m`, `n` и `o`." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2316 +msgid "All these examples are equivalent but the last one is preferred:" +msgstr "Все эти примеры эквивалентны, но последний является предпочтительным:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2320 +#, no-wrap +msgid "MASTER_SITES=\talpha alpha:SOME_SITE\n" +msgstr "MASTER_SITES=\talpha alpha:SOME_SITE\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2325 +#, no-wrap +msgid "MASTER_SITES=\talpha:DEFAULT alpha:SOME_SITE\n" +msgstr "MASTER_SITES=\talpha:DEFAULT alpha:SOME_SITE\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2330 +#, no-wrap +msgid "MASTER_SITES=\talpha:SOME_SITE,DEFAULT\n" +msgstr "MASTER_SITES=\talpha:SOME_SITE,DEFAULT\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2335 +#, no-wrap +msgid "MASTER_SITES=\talpha:DEFAULT,SOME_SITE\n" +msgstr "MASTER_SITES=\talpha:DEFAULT,SOME_SITE\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2338 +msgid "" +"All sites within a given group are sorted according to `MASTER_SORT_AWK`. " +"All groups within `MASTER_SITES` and `PATCH_SITES` are sorted as well." +msgstr "" +"Все сайты в заданной группе сортируются согласно `MASTER_SORT_AWK`. Все " +"группы в `MASTER_SITES` и `PATCH_SITES` также сортируются." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2341 +msgid "" +"Group semantics can be used in any of the variables `MASTER_SITES`, " +"`PATCH_SITES`, `MASTER_SITE_SUBDIR`, `PATCH_SITE_SUBDIR`, `DISTFILES`, and " +"`PATCHFILES` according to this syntax:" +msgstr "" +"Семантика групп может использоваться в любых переменных `MASTER_SITES`, " +"`PATCH_SITES`, `MASTER_SITE_SUBDIR`, `PATCH_SITE_SUBDIR`, `DISTFILES` и " +"`PATCHFILES` согласно следующему синтаксису:" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2355 +msgid "" +"All `MASTER_SITES`, `PATCH_SITES`, `MASTER_SITE_SUBDIR` and " +"`PATCH_SITE_SUBDIR` elements must be terminated with the forward slash `/` " +"character. If any elements belong to any groups, the group postfix `:__n__` " +"must come right after the terminator `/`. The `MASTER_SITES:n` mechanism " +"relies on the existence of the terminator `/` to avoid confusing elements " +"where a `:n` is a valid part of the element with occurrences where `:n` " +"denotes group `n`. For compatibility purposes, since the `/` terminator was " +"not required before in both `MASTER_SITE_SUBDIR` and `PATCH_SITE_SUBDIR` " +"elements, if the postfix immediate preceding character is not a `/` then " +"`:n` will be considered a valid part of the element instead of a group " +"postfix even if an element is postfixed with `:n`. See both " +"crossref:makefiles[ports-master-sites-n-example-detailed-use-master-site-" +"subdir,Detailed Use of `MASTER_SITES:n` in `MASTER_SITE_SUBDIR`] and " +"crossref:makefiles[ports-master-sites-n-example-detailed-use-complete-" +"example-master-sites,Detailed Use of `MASTER_SITES:n` with Comma Operator, " +"Multiple Files, Multiple Sites and Multiple Subdirectories]." +msgstr "" +"Все элементы `MASTER_SITES`, `PATCH_SITES`, `MASTER_SITE_SUBDIR` и " +"`PATCH_SITE_SUBDIR` должны заканчиваться символом дробной черты `/`. Если " +"элементы принадлежат к какой-либо группе, постфикс группы `:__n__` должен " +"следовать сразу после завершающего символа `/`. Механизм `MASTER_SITES:n` " +"полагается на наличие завершающего символа `/`, чтобы избежать путаницы " +"между элементами, где `:n` является допустимой частью элемента, и случаями, " +"где `:n` обозначает группу `n`. В целях совместимости, поскольку ранее " +"завершающий символ `/` не требовался в элементах `MASTER_SITE_SUBDIR` и " +"`PATCH_SITE_SUBDIR`, если символ, непосредственно предшествующий постфиксу, " +"не является `/`, то `:n` будет считаться допустимой частью элемента, а не " +"постфиксом группы, даже если элемент оканчивается на `:n`. См. оба раздела " +"crossref:makefiles[ports-master-sites-n-example-detailed-use-master-site-" +"subdir,Подробное использование `MASTER_SITES:n` в `MASTER_SITE_SUBDIR`] и " +"crossref:makefiles[ports-master-sites-n-example-detailed-use-complete-" +"example-master-sites,Подробное использование `MASTER_SITES:n` с оператором " +"запятая, несколькими файлами, несколькими сайтами и несколькими " +"подкаталогами]." + +#. type: Block title +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2357 +#, no-wrap +msgid "Detailed Use of `MASTER_SITES:n` in `MASTER_SITE_SUBDIR`" +msgstr "Подробное использование `MASTER_SITES:n` в `MASTER_SITE_SUBDIR`" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2364 +#, no-wrap +msgid "MASTER_SITE_SUBDIR=\told:n new/:NEW\n" +msgstr "MASTER_SITE_SUBDIR=\told:n new/:NEW\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2367 +msgid "Directories within group `DEFAULT` -> old:n" +msgstr "Каталоги в группе `DEFAULT` -> old:n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2368 +msgid "Directories within group `NEW` -> new" +msgstr "Каталоги в группе `NEW` -> new" + +#. type: Block title +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2372 +#, no-wrap +msgid "Detailed Use of `MASTER_SITES:n` with Comma Operator, Multiple Files, Multiple Sites and Multiple Subdirectories" +msgstr "Подробное использование `MASTER_SITES:n` с оператором запятая, несколькими файлами, сайтами и подкаталогами" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2390 +#, no-wrap +msgid "" +"MASTER_SITES=\thttp://site1/%SUBDIR%/ http://site2/:DEFAULT \\\n" +"\t\thttp://site3/:group3 http://site4/:group4 \\\n" +"\t\thttp://site5/:group5 http://site6/:group6 \\\n" +"\t\thttp://site7/:DEFAULT,group6 \\\n" +"\t\thttp://site8/%SUBDIR%/:group6,group7 \\\n" +"\t\thttp://site9/:group8\n" +"DISTFILES=\tfile1 file2:DEFAULT file3:group3 \\\n" +"\t\tfile4:group4,group5,group6 file5:grouping \\\n" +"\t\tfile6:group7\n" +"MASTER_SITE_SUBDIR=\tdirectory-trial:1 directory-n/:groupn \\\n" +"\t\tdirectory-one/:group6,DEFAULT \\\n" +"\t\tdirectory\n" +msgstr "" +"MASTER_SITES=\thttp://site1/%SUBDIR%/ http://site2/:DEFAULT \\\n" +"\t\thttp://site3/:group3 http://site4/:group4 \\\n" +"\t\thttp://site5/:group5 http://site6/:group6 \\\n" +"\t\thttp://site7/:DEFAULT,group6 \\\n" +"\t\thttp://site8/%SUBDIR%/:group6,group7 \\\n" +"\t\thttp://site9/:group8\n" +"DISTFILES=\tfile1 file2:DEFAULT file3:group3 \\\n" +"\t\tfile4:group4,group5,group6 file5:grouping \\\n" +"\t\tfile6:group7\n" +"MASTER_SITE_SUBDIR=\tdirectory-trial:1 directory-n/:groupn \\\n" +"\t\tdirectory-one/:group6,DEFAULT \\\n" +"\t\tdirectory\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2394 +msgid "" +"The previous example results in this fine grained fetching. Sites are " +"listed in the exact order they will be used." +msgstr "" +"Предыдущий пример приводит к такой детализированной загрузке файлов. Сайты " +"перечислены в точном порядке их использования." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2396 +msgid "[.filename]#file1# will be fetched from" +msgstr "[.filename]#file1# будет загружен из" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2398 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2408 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2418 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2424 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2434 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2439 +msgid "`MASTER_SITE_OVERRIDE`" +msgstr "`MASTER_SITE_OVERRIDE`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2399 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2409 +msgid "http://site1/directory-trial:1/" +msgstr "http://site1/directory-trial:1/" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2400 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2410 +msgid "http://site1/directory-one/" +msgstr "http://site1/directory-one/" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2401 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2411 +msgid "http://site1/directory/" +msgstr "http://site1/directory/" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2402 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2412 +msgid "http://site2/" +msgstr "http://site2/" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2403 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2413 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2428 +msgid "http://site7/" +msgstr "http://site7/" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2404 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2414 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2420 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2430 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2435 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2441 +msgid "`MASTER_SITE_BACKUP`" +msgstr "`MASTER_SITE_BACKUP`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2406 +msgid "" +"[.filename]#file2# will be fetched exactly as [.filename]#file1# since they " +"both belong to the same group" +msgstr "" +"[.filename]#file2# будет загружен точно так же, как [.filename]#file1#, " +"поскольку они оба принадлежат к одной и той же группе" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2416 +msgid "[.filename]#file3# will be fetched from" +msgstr "[.filename]#file3# будет загружен из" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2419 +msgid "http://site3/" +msgstr "http://site3/" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2422 +msgid "[.filename]#file4# will be fetched from" +msgstr "[.filename]#file4# будет загружен из" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2425 +msgid "http://site4/" +msgstr "http://site4/" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2426 +msgid "http://site5/" +msgstr "http://site5/" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2427 +msgid "http://site6/" +msgstr "http://site6/" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2429 +msgid "http://site8/directory-one/" +msgstr "http://site8/directory-one/" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2432 +msgid "[.filename]#file5# will be fetched from" +msgstr "[.filename]#file5# будет загружен из" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2437 +msgid "[.filename]#file6# will be fetched from" +msgstr "[.filename]#file6# будет получен из" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2440 +msgid "http://site8/" +msgstr "http://site8/" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2445 +msgid "" +"How do I group one of the special macros from [.filename]#bsd.sites.mk#, for " +"example, SourceForge (`SF`)?" +msgstr "" +"Как сгруппировать один из специальных макросов из [.filename]#bsd.sites.mk#, " +"например, SourceForge (`SF`)?" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2449 +msgid "" +"This has been simplified as much as possible. See crossref:makefiles[ports-" +"master-sites-n-example-detailed-use-master-site-sourceforge,Detailed Use of " +"`MASTER_SITES:n` with SourceForge (`SF`)]." +msgstr "" +"Это максимально упрощено. См. crossref:makefiles[ports-master-sites-n-" +"example-detailed-use-master-site-sourceforge,Подробное использование " +"`MASTER_SITES:n` с SourceForge (`SF`)]." + +#. type: Block title +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2451 +#, no-wrap +msgid "Detailed Use of `MASTER_SITES:n` with SourceForge (`SF`)" +msgstr "Подробное использование `MASTER_SITES:n` с SourceForge (`SF`)" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2459 +#, no-wrap +msgid "" +"MASTER_SITES=\thttp://site1/ SF/something/1.0:sourceforge,TEST\n" +"DISTFILES=\tsomething.tar.gz:sourceforge\n" +msgstr "" +"MASTER_SITES=\thttp://site1/ SF/something/1.0:sourceforge,TEST\n" +"DISTFILES=\tsomething.tar.gz:sourceforge\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2462 +msgid "" +"[.filename]#something.tar.gz# will be fetched from all sites within " +"SourceForge." +msgstr "" +"[.filename]#something.tar.gz# будет загружен со всех сайтов в пределах " +"SourceForge." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2464 +msgid "How do I use this with `PATCH*`?" +msgstr "Как использовать это с `PATCH*`?" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2468 +msgid "" +"All examples were done with `MASTER*` but they work exactly the same for " +"`PATCH*` ones as can be seen in crossref:makefiles[ports-master-sites-n-" +"example-detailed-use-patch-sites,Simplified Use of `MASTER_SITES:n` with " +"`PATCH_SITES`]." +msgstr "" +"Все примеры были выполнены с `MASTER*`, но они работают точно так же для " +"`PATCH*`, как можно увидеть в crossref:makefiles[ports-master-sites-n-" +"example-detailed-use-patch-sites,Упрощённое использование `MASTER_SITES:n` с " +"`PATCH_SITES`]." + +#. type: Block title +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2470 +#, no-wrap +msgid "Simplified Use of `MASTER_SITES:n` with `PATCH_SITES`" +msgstr "Упрощённое использование `MASTER_SITES:n` с `PATCH_SITES`" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2478 +#, no-wrap +msgid "" +"PATCH_SITES=\thttp://site1/ http://site2/:test\n" +"PATCHFILES=\tpatch1:test\n" +msgstr "" +"PATCH_SITES=\thttp://site1/ http://site2/:test\n" +"PATCHFILES=\tpatch1:test\n" + +#. type: Title ==== +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2483 +#, no-wrap +msgid "What Does Change for Ports? What Does Not?" +msgstr "Что меняется для портов? Что остается неизменным?" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2490 +msgid "" +"All current ports remain the same. The `MASTER_SITES:n` feature code is only " +"activated if there are elements postfixed with `:__n__` like elements " +"according to the aforementioned syntax rules, especially as shown in item " +"crossref:makefiles[porting-master-sites-n-group-semantics, 7]." +msgstr "" +"Все текущие порты остаются без изменений. Функция `MASTER_SITES:n` " +"активируется только при наличии элементов с постфиксом `:__n__`, " +"соответствующих указанным выше синтаксическим правилам, в частности, как " +"показано в пункте crossref:makefiles[porting-master-sites-n-group-semantics, " +"7]." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2493 +msgid "" +"The port targets remain the same: `checksum`, `makesum`, `patch`, " +"`configure`, `build`, etc. With the obvious exceptions of `do-fetch`, `fetch-" +"list`, `master-sites` and `patch-sites`." +msgstr "" +"Порты сохраняют те же цели: `checksum`, `makesum`, `patch`, `configure`, " +"`build` и т.д., за исключением очевидных случаев: `do-fetch`, `fetch-list`, " +"`master-sites` и `patch-sites`." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2499 +msgid "" +"`do-fetch`: deploys the new grouping postfixed `DISTFILES` and `PATCHFILES` " +"with their matching group elements within both `MASTER_SITES` and " +"`PATCH_SITES` which use matching group elements within both " +"`MASTER_SITE_SUBDIR` and `PATCH_SITE_SUBDIR`. Check crossref:makefiles[ports-" +"master-sites-n-example-detailed-use-complete-example-master-sites,Detailed " +"Use of `MASTER_SITES:n` with Comma Operator, Multiple Files, Multiple Sites " +"and Multiple Subdirectories]." +msgstr "" +"`do-fetch`: развертывает новую группировку с постфиксом `DISTFILES` и " +"`PATCHFILES` с соответствующими групповыми элементами в `MASTER_SITES` и " +"`PATCH_SITES`, которые используют соответствующие групповые элементы в " +"`MASTER_SITE_SUBDIR` и `PATCH_SITE_SUBDIR`. Проверьте " +"crossref:makefiles[ports-master-sites-n-example-detailed-use-complete-" +"example-master-sites,Подробное использование `MASTER_SITES:n` с оператором " +"запятой, множественными файлами, множественными сайтами и множественными " +"подкаталогами]." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2500 +msgid "" +"`fetch-list`: works like old `fetch-list` with the exception that it groups " +"just like `do-fetch`." +msgstr "" +"`fetch-list`: работает как старый `fetch-list`, за исключением того, что " +"группировка происходит так же, как в `do-fetch`." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2501 +msgid "" +"`master-sites` and `patch-sites`: (incompatible with older versions) only " +"return the elements of group `DEFAULT`; in fact, they execute targets " +"`master-sites-default` and `patch-sites-default` respectively." +msgstr "" +"`master-sites` и `patch-sites`: (несовместимо с более старыми версиями) " +"возвращают только элементы группы `DEFAULT`; фактически они выполняют цели " +"`master-sites-default` и `patch-sites-default` соответственно." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2506 +msgid "" +"Furthermore, using target either `master-sites-all` or `patch-sites-all` is " +"preferred to directly checking either `MASTER_SITES` or `PATCH_SITES`. " +"Also, directly checking is not guaranteed to work in any future versions. " +"Check item crossref:makefiles[porting-master-sites-n-new-port-targets-master-" +"sites-all, B] for more information on these new port targets." +msgstr "" +"Кроме того, предпочтительнее использовать цель `master-sites-all` или `patch-" +"sites-all`, чем напрямую проверять `MASTER_SITES` или `PATCH_SITES`. Кроме " +"того, прямая проверка не гарантирует работу в будущих версиях. Для получения " +"дополнительной информации об этих новых целях портов см. пункт " +"crossref:makefiles[porting-master-sites-n-new-port-targets-master-sites-all, " +"B]." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2508 +msgid "New port targets" +msgstr "Новые цели портов" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2509 +msgid "" +"There are `master-sites-_n_` and `patch-sites-_n_` targets which will list " +"the elements of the respective group _n_ within `MASTER_SITES` and " +"`PATCH_SITES` respectively. For instance, both `master-sites-DEFAULT` and " +"`patch-sites-DEFAULT` will return the elements of group `DEFAULT`, `master-" +"sites-test` and `patch-sites-test` of group `test`, and thereon." +msgstr "" +"Существуют цели `master-sites-_n_` и `patch-sites-_n_`, которые будут " +"выводить элементы соответствующей группы _n_ в `MASTER_SITES` и " +"`PATCH_SITES` соответственно. Например, и `master-sites-DEFAULT`, и `patch-" +"sites-DEFAULT` вернут элементы группы `DEFAULT`, `master-sites-test` и " +"`patch-sites-test` — группы `test`, и так далее." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2512 +msgid "" +"There are new targets `master-sites-all` and `patch-sites-all` which do the " +"work of the old `master-sites` and `patch-sites` ones. They return the " +"elements of all groups as if they all belonged to the same group with the " +"caveat that it lists as many `MASTER_SITE_BACKUP` and `MASTER_SITE_OVERRIDE` " +"as there are groups defined within either `DISTFILES` or `PATCHFILES`; " +"respectively for `master-sites-all` and `patch-sites-all`." +msgstr "" +"Существуют новые цели `master-sites-all` и `patch-sites-all`, которые " +"выполняют работу старых `master-sites` и `patch-sites`. Они возвращают " +"элементы всех групп, как если бы они все принадлежали одной группе, с " +"оговоркой, что перечисляется столько же `MASTER_SITE_BACKUP` и " +"`MASTER_SITE_OVERRIDE`, сколько определено групп в `DISTFILES` или " +"`PATCHFILES`; соответственно для `master-sites-all` и `patch-sites-all`." + +#. type: Title === +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2514 +#, no-wrap +msgid "`DIST_SUBDIR`" +msgstr "`DIST_SUBDIR`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2519 +msgid "" +"Do not let the port clutter [.filename]#/usr/ports/distfiles#. If the port " +"requires a lot of files to be fetched, or contains a file that has a name " +"that might conflict with other ports (for example, [.filename]#Makefile#), " +"set `DIST_SUBDIR` to the name of the port (`${PORTNAME}` or `${PKGNAMEPREFIX}" +"${PORTNAME}` are fine). This will change `DISTDIR` from the default " +"[.filename]#/usr/ports/distfiles# to [.filename]#/usr/ports/distfiles/$" +"{DIST_SUBDIR}#, and in effect puts everything that is required for the port " +"into that subdirectory." +msgstr "" +"Не допускайте захламления портом каталога [.filename]#/usr/ports/distfiles#. " +"Если порт требует загрузки большого количества файлов или содержит файл с " +"именем, которое может конфликтовать с другими портами (например, " +"[.filename]#Makefile#), установите `DIST_SUBDIR` в имя порта (подойдут `$" +"{PORTNAME}` или `${PKGNAMEPREFIX}${PORTNAME}`). Это изменит `DISTDIR` со " +"значения по умолчанию [.filename]#/usr/ports/distfiles# на [.filename]#/usr/" +"ports/distfiles/${DIST_SUBDIR}#, фактически помещая все необходимые для " +"порта файлы в этот подкаталог." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2521 +msgid "" +"It will also look at the subdirectory with the same name on the backup " +"master site at http://distcache.FreeBSD.org[http://distcache.FreeBSD.org] " +"(Setting `DISTDIR` explicitly in [.filename]#Makefile# will not accomplish " +"this, so please use `DIST_SUBDIR`.)" +msgstr "" +"Также будет проверяться подкаталог с тем же именем на основном резервном " +"сайте по адресу http://distcache.FreeBSD.org[http://distcache.FreeBSD.org] " +"(Явное указание `DISTDIR` в [.filename]#Makefile# не решит эту задачу, " +"поэтому используйте `DIST_SUBDIR`.)" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2525 +msgid "" +"This does not affect `MASTER_SITES` defined in the [.filename]#Makefile#." +msgstr "" +"Это не влияет на сайты в `MASTER_SITES`, определённые в " +"[.filename]#Makefile#." + +#. type: Title == +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2528 +#, no-wrap +msgid "`MAINTAINER`" +msgstr "`MAINTAINER`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2531 +msgid "Set your mail-address here. Please. _:-)_" +msgstr "Установите здесь свой адрес электронной почты. Пожалуйста. _:-)_" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2536 +msgid "" +"Only a single address without the comment part is allowed as a `MAINTAINER` " +"value. The format used is `user@hostname.domain`. Please do not include " +"any descriptive text such as a real name in this entry. That merely " +"confuses the Ports infrastructure and most tools using it." +msgstr "" +"Только один адрес без комментария допускается в качестве значения " +"`MAINTAINER`. Используемый формат: `user@hostname.domain`. Пожалуйста, не " +"включайте в эту запись описательный текст, например, настоящее имя. Это " +"только вносит путаницу в инфраструктуру Ports и большинство инструментов, " +"которые её используют." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2539 +msgid "" +"The maintainer is responsible for keeping the port up to date and making " +"sure that it works correctly. For a detailed description of the " +"responsibilities of a port maintainer, refer to extref:{contributing}[The " +"challenge for port maintainers, maintain-port]." +msgstr "" +"Ответственный за поддержку порта обязан поддерживать порт в актуальном " +"состоянии и обеспечивать его корректную работу. Подробное описание " +"обязанностей ответственного за поддержку порта приведено в разделе extref:" +"{contributing}[Задача для сопровождающих портов,maintain-port]." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2548 +msgid "" +"A maintainer volunteers to keep a port in good working order. Maintainers " +"have the primary responsibility for their ports, but not exclusive " +"ownership. Ports exist for the benefit of the community and, in reality, " +"belong to the community. What this means is that people other than the " +"maintainer can make changes to a port. Large changes to the Ports " +"Collection might require changes to many ports. The FreeBSD Ports " +"Management Team or members of other teams might modify ports to fix " +"dependency issues or other problems, like a version bump for a shared " +"library update." +msgstr "" +"Сопровождающий добровольно поддерживает порт в рабочем состоянии. " +"Сопровождающие несут основную ответственность за свои порты, но не имеют " +"исключительных прав на них. Порты существуют для пользы сообщества и, по " +"сути, принадлежат сообществу. Это означает, что люди, не являющиеся " +"сопровождающими, также могут вносить изменения в порт. Крупные изменения в " +"коллекции портов могут потребовать правок во многих портах. Команда " +"управления портами FreeBSD или члены других команд могут изменять порты для " +"исправления проблем с зависимостями или других проблем, таких как обновление " +"версии динамической библиотеки." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2551 +msgid "" +"Some types of fixes have \"blanket approval\" from the {portmgr}, allowing " +"any committer to fix those categories of problems on any port. These fixes " +"do not need approval from the maintainer." +msgstr "" +"Некоторые типы исправлений имеют \"автоматическое согласование\" от " +"{portmgr}, что позволяет любому коммиттеру исправлять эти категории проблем " +"в любом порте. Такие исправления не требуют одобрения от сопровождающего." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2554 +msgid "" +"Blanket approval for most ports applies to fixes like infrastructure " +"changes, or trivial and _tested_ build and runtime fixes. The current list " +"is available in extref:{committers-guide}[Ports section of the Committer's " +"Guide, ports-qa-misc-blanket-approval]." +msgstr "" +"Автоматическое согласование для большинства портов применяется к " +"исправлениям, таким как изменения инфраструктуры, или тривиальным и " +"_проверенным_ исправлениям сборки и выполнения. Текущий список доступен в " +"extref:{committers-guide}[разделе Портов Руководства коммиттера, ports-qa-" +"misc-blanket-approval]." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2561 +msgid "" +"Other changes to the port will be sent to the maintainer for review and " +"approval before being committed. If the maintainer does not respond to an " +"update request after two weeks (excluding major public holidays), then that " +"is considered a maintainer timeout, and the update can be made without " +"explicit maintainer approval. If the maintainer does not respond within " +"three months, or if there have been three consecutive timeouts, then that " +"maintainer is considered absent without leave, and all of their ports can be " +"assigned back to the pool. Exceptions to this are anything maintained by " +"the {portmgr}, or the {security-officer}. No unauthorized commits may ever " +"be made to ports maintained by those groups." +msgstr "" +"Другие изменения в порте будут отправлены сопровождающему на проверку и " +"утверждение перед внесением. Если сопровождающий не отвечает на запрос об " +"обновлении в течение двух недель (за исключением основных государственных " +"праздников), это считается превышением времени ожидания сопровождающего, и " +"обновление может быть внесено без его явного одобрения. Если сопровождающий " +"не отвечает в течение трех месяцев или если произошло три последовательных " +"превышения времени ожидания, то сопровождающий считается отсутствующим без " +"уведомления, и все его порты могут быть возвращены в общий пул. Исключениями " +"являются порты, сопровождаемые {portmgr} или {security-officer}. Никакие " +"несанкционированные изменения не могут быть внесены в порты, сопровождаемые " +"этими группами." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2565 +msgid "" +"We reserve the right to modify the maintainer's submission to better match " +"existing policies and style of the Ports Collection without explicit " +"blessing from the submitter or the maintainer. Also, large infrastructural " +"changes can result in a port being modified without the maintainer's " +"consent. These kinds of changes will never affect the port's functionality." +msgstr "" +"Мы оставляем за собой право изменять представленные сопровождающим " +"материалы, чтобы лучше соответствовать существующим политикам и стилю " +"Коллекции портов, без явного одобрения отправителя или сопровождающего. " +"Кроме того, масштабные инфраструктурные изменения могут привести к " +"модификации порта без согласия сопровождающего. Подобные изменения никогда " +"не повлияют на функциональность порта." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2567 +msgid "" +"The {portmgr} reserves the right to revoke or override anyone's " +"maintainership for any reason, and the {security-officer} reserves the right " +"to revoke or override maintainership for security reasons." +msgstr "" +"{portmgr} оставляет за собой право отозвать или изменить права " +"сопровождающего по любой причине, а {security-officer} оставляет за собой " +"право отозвать или изменить права сопровождающего по соображениям " +"безопасности." + +#. type: Title == +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2569 +#, no-wrap +msgid "`COMMENT`" +msgstr "`COMMENT`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2573 +msgid "" +"The comment is a one-line description of a port shown by `pkg info`. Please " +"follow these rules when composing it:" +msgstr "" +"Комментарий — это однострочное описание порта, отображаемое командой `pkg " +"info`. При составлении придерживайтесь следующих правил:" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2575 +msgid "The COMMENT string should be 70 characters or less." +msgstr "Строка COMMENT должна быть не длиннее 70 символов." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2576 +msgid "Do _not_ include the package name or version number of software." +msgstr "" +"Не включайте название пакета или номер версии программного обеспечения." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2577 +msgid "The comment must begin with a capital and end without a period." +msgstr "" +"Комментарий должен начинаться с заглавной буквы и заканчиваться без точки." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2578 +msgid "Do not start with an indefinite article (that is, A or An)." +msgstr "Не начинайте с неопределённого артикля (то есть A или An)." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2579 +msgid "Capitalize names such as Apache, JavaScript, or Perl." +msgstr "" +"Пишите названия с заглавной буквы, например: Apache, JavaScript или Perl." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2580 +msgid "Use a serial comma for lists of words: \"green, red, and blue.\"" +msgstr "Используйте запятую для списков слов: \"green, red, and blue.\"" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2581 +msgid "Check for spelling errors." +msgstr "Проверяйте на наличие орфографических ошибок." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2583 +msgid "Here is an example:" +msgstr "Вот пример:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2587 +#, no-wrap +msgid "COMMENT=\tCat chasing a mouse all over the screen\n" +msgstr "COMMENT=\tCat chasing a mouse all over the screen\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2590 +msgid "" +"The COMMENT variable immediately follows the MAINTAINER variable in the " +"[.filename]#Makefile#." +msgstr "" +"Переменная COMMENT следует сразу за переменной MAINTAINER в файле " +"[.filename]#Makefile#." + +#. type: Title == +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2592 +#, no-wrap +msgid "Project website" +msgstr "Веб-сайт проекта" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2595 +msgid "" +"Each port should point to a website that provides more information about the " +"software." +msgstr "" +"Каждый порт должен указывать на веб-сайт, предоставляющий дополнительную " +"информацию о программном обеспечении." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2597 +msgid "" +"Whenever possible, this should be the official project website maintained by " +"the developers of the software." +msgstr "" +"Везде, где это возможно, следует использовать официальный сайт проекта, " +"поддерживаемый разработчиками программного обеспечения." + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2601 +#, no-wrap +msgid "WWW=\t\thttps://ffmpeg.org/\n" +msgstr "WWW=\t\thttps://ffmpeg.org/\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2604 +msgid "" +"But it can also be a directory or resource in the source code repository:" +msgstr "" +"Но это также может быть каталог или ресурс в репозитории исходного кода:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2608 +#, no-wrap +msgid "WWW=\t\thttps://sourceforge.net/projects/mpd/\n" +msgstr "WWW=\t\thttps://sourceforge.net/projects/mpd/\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2611 +msgid "" +"The WWW variable immediately follows the COMMENT variable in the " +"[.filename]#Makefile#." +msgstr "" +"Переменная WWW следует сразу за переменной COMMENT в файле " +"[.filename]#Makefile#." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2614 +msgid "" +"If the same content can be accessed via HTTP and HTTPS, the URL starting " +"with `https://` shall be used. If the URI is the root of the website or " +"directory, it must be terminated with a slash." +msgstr "" +"Если один и тот же контент доступен по HTTP и HTTPS, следует использовать " +"URL, начинающийся с `https://`. Если URI является корнем веб-сайта или " +"директории, он должен заканчиваться косой чертой." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2618 +msgid "" +"This information used to be placed into the last line of the [.filename]#pkg-" +"descr# file. It has been moved into the Makefile for easier maintenance and " +"processing. Having a `WWW:` line at the end of the [.filename]#pkg-descr# " +"file is deprecated." +msgstr "" +"Эта информация ранее размещалась в последней строке файла [.filename]#pkg-" +"descr#. Она была перенесена в Makefile для удобства обслуживания и " +"обработки. Наличие строки `WWW:` в конце файла [.filename]#pkg-descr# " +"считается устаревшим." + +#. type: Title == +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2620 +#, no-wrap +msgid "Licenses" +msgstr "Лицензии" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2624 +msgid "" +"Each port must document the license under which it is available. If it is " +"not an OSI approved license it must also document any restrictions on " +"redistribution." +msgstr "" +"Каждый порт должен содержать документацию о лицензии, под которой он " +"распространяется. Если лицензия не одобрена OSI, необходимо также указать " +"любые ограничения на распространение." + +#. type: Title === +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2626 +#, no-wrap +msgid "`LICENSE`" +msgstr "`LICENSE`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2629 +msgid "" +"A short name for the license or licenses if more than one license apply." +msgstr "" +"Краткое название лицензии или лицензий, если применяется более одной " +"лицензии." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2631 +msgid "" +"If it is one of the licenses listed in crossref:makefiles[licenses-license-" +"list,Predefined License List], only `LICENSE_FILE` and `LICENSE_DISTFILES` " +"variables can be set." +msgstr "" +"Если это одна из лицензий, перечисленных в crossref:makefiles[licenses-" +"license-list,Предопределенный список лицензий], можно задать только " +"переменные `LICENSE_FILE` и `LICENSE_DISTFILES`." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2635 +msgid "" +"If this is a license that has not been defined in the ports framework (see " +"crossref:makefiles[licenses-license-list,Predefined License List]), the " +"`LICENSE_PERMS` and `LICENSE_NAME` must be set, along with either " +"`LICENSE_FILE` or `LICENSE_TEXT`. `LICENSE_DISTFILES` and `LICENSE_GROUPS` " +"can also be set, but are not required." +msgstr "" +"Если это лицензия, которая не определена в рамках портов (см. " +"crossref:makefiles[licenses-license-list,Список предопределённых лицензий]), " +"необходимо задать `LICENSE_PERMS` и `LICENSE_NAME`, а также `LICENSE_FILE` " +"или `LICENSE_TEXT`. Также можно задать `LICENSE_DISTFILES` и " +"`LICENSE_GROUPS`, но это не обязательно." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2638 +msgid "" +"The predefined licenses are shown in crossref:makefiles[licenses-license-" +"list,Predefined License List]. The current list is always available in " +"[.filename]#Mk/bsd.licenses.db.mk#." +msgstr "" +"Предопределенные лицензии показаны в crossref:makefiles[licenses-license-" +"list,Список предопределенных лицензий]. Текущий список всегда доступен в " +"[.filename]#Mk/bsd.licenses.db.mk#." + +#. type: Block title +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2640 +#, no-wrap +msgid "Simplest Usage, Predefined Licenses" +msgstr "Простейшее использование, предопределённые лицензии" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2645 +msgid "" +"When the [.filename]#README# of some software says \"This software is under " +"the terms of the GNU Lesser General Public License as published by the Free " +"Software Foundation; either version 2.1 of the License, or (at your option) " +"any later version.\" but does not provide the license file, use this:" +msgstr "" +"Когда в файле [.filename]#README# какого-либо программного обеспечения " +"указано: «Данное программное обеспечение распространяется на условиях GNU " +"Lesser General Public License, опубликованной Free Software Foundation; либо " +"версии 2.1 Лицензии, либо (по вашему выбору) любой более поздней версии», но " +"сам файл лицензии не предоставлен, используйте следующее:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2649 +#, no-wrap +msgid "LICENSE=\tLGPL21+\n" +msgstr "LICENSE=\tLGPL21+\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2652 +msgid "When the software provides the license file, use this:" +msgstr "" +"Когда программное обеспечение предоставляет файл лицензии, используйте это:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2657 +#, no-wrap +msgid "" +"LICENSE=\tLGPL21+\n" +"LICENSE_FILE=\t${WRKSRC}/COPYING\n" +msgstr "" +"LICENSE=\tLGPL21+\n" +"LICENSE_FILE=\t${WRKSRC}/COPYING\n" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2662 +msgid "" +"For the predefined licenses, the default permissions are `dist-mirror dist-" +"sell pkg-mirror pkg-sell auto-accept`." +msgstr "" +"Для предопределённых лицензий права по умолчанию: `dist-mirror dist-sell pkg-" +"mirror pkg-sell auto-accept`." + +#. type: Block title +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2664 +#, no-wrap +msgid "Predefined License List" +msgstr "Предопределенный список лицензий" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2668 +#, no-wrap +msgid "Short Name" +msgstr "Короткое имя" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2669 +#, no-wrap +msgid "Name" +msgstr "Имя" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2670 +#, no-wrap +msgid "Group" +msgstr "Группа" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2672 +#, no-wrap +msgid "Permissions" +msgstr "Разрешения" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2673 +#, no-wrap +msgid "`AGPLv3`" +msgstr "`AGPLv3`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2674 +#, no-wrap +msgid "GNU Affero General Public License version 3" +msgstr "Универсальная общественная лицензия GNU Affero версии 3" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2675 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2680 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2705 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2905 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2920 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2925 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2930 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2935 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2940 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2945 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2950 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2955 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2960 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2970 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2975 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2980 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2985 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2990 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2995 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3105 +#, no-wrap +msgid "`FSF GPL OSI`" +msgstr "`FSF GPL OSI`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2677 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2682 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2687 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2692 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2697 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2702 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2707 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2712 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2717 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2722 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2727 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2732 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2737 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2742 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2747 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2752 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2757 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2762 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2842 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2847 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2852 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2857 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2862 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2867 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2872 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2877 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2882 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2887 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2892 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2897 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2902 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2907 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2912 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2917 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2922 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2927 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2932 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2937 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2942 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2947 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2952 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2957 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2962 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2967 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2972 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2977 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2982 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2987 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2992 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2997 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3037 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3042 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3047 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3052 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3057 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3067 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3072 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3077 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3082 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3087 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3092 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3097 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3102 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3107 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3112 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3117 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3122 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3127 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3132 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3137 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3141 +#, no-wrap +msgid "(default)" +msgstr "(по умолчанию)" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2678 +#, no-wrap +msgid "`AGPLv3+`" +msgstr "`AGPLv3+`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2679 +#, no-wrap +msgid "GNU Affero General Public License version 3 (or later)" +msgstr "Универсальная общественная лицензия GNU Affero версии 3 (или позднее)" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2683 +#, no-wrap +msgid "`APACHE10`" +msgstr "`APACHE10`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2684 +#, no-wrap +msgid "Apache License 1.0" +msgstr "Apache License 1.0" + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2685 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2730 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2915 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3080 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3115 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3264 +#, no-wrap +msgid "`FSF`" +msgstr "`FSF`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2688 +#, no-wrap +msgid "`APACHE11`" +msgstr "`APACHE11`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2689 +#, no-wrap +msgid "Apache License 1.1" +msgstr "Apache License 1.1" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2690 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2695 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2895 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2900 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2910 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3000 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3005 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3010 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3015 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3020 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3025 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3030 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3040 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3045 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3050 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3090 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3095 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3100 +#, no-wrap +msgid "`FSF OSI`" +msgstr "`FSF OSI`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2693 +#, no-wrap +msgid "`APACHE20`" +msgstr "`APACHE20`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2694 +#, no-wrap +msgid "Apache License 2.0" +msgstr "Apache License 2.0" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2698 +#, no-wrap +msgid "`ART10`" +msgstr "`ART10`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2699 +#, no-wrap +msgid "Artistic License version 1.0" +msgstr "Художественная лицензия версия 1.0" + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2700 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2710 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3272 +#, no-wrap +msgid "`OSI`" +msgstr "`OSI`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2703 +#, no-wrap +msgid "`ART20`" +msgstr "`ART20`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2704 +#, no-wrap +msgid "Artistic License version 2.0" +msgstr "Художественная лицензия версии 2.0" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2708 +#, no-wrap +msgid "`ARTPERL10`" +msgstr "`ARTPERL10`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2709 +#, no-wrap +msgid "Artistic License (perl) version 1.0" +msgstr "Художественная лицензия (perl) версия 1.0" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2713 +#, no-wrap +msgid "`BSD`" +msgstr "`BSD`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2714 +#, no-wrap +msgid "BSD license Generic Version (deprecated)" +msgstr "Лицензия BSD, общая версия (устарела)" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2715 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2720 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2725 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2735 +#, no-wrap +msgid "`FSF OSI COPYFREE`" +msgstr "`FSF OSI COPYFREE`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2718 +#, no-wrap +msgid "`BSD2CLAUSE`" +msgstr "`BSD2CLAUSE`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2719 +#, no-wrap +msgid "BSD 2-clause \"Simplified\" License" +msgstr "BSD 2-пунктная лицензия \"Упрощенная\"" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2723 +#, no-wrap +msgid "`BSD3CLAUSE`" +msgstr "`BSD3CLAUSE`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2724 +#, no-wrap +msgid "BSD 3-clause \"New\" or \"Revised\" License" +msgstr "BSD 3-пунктная лицензия \"Новая\" или \"Пересмотренная\"" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2728 +#, no-wrap +msgid "`BSD4CLAUSE`" +msgstr "`BSD4CLAUSE`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2729 +#, no-wrap +msgid "BSD 4-clause \"Original\" or \"Old\" License" +msgstr "BSD 4-пунктная лицензия \"Оригинальная\" или \"Старая\"" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2733 +#, no-wrap +msgid "`BSL`" +msgstr "`BSL`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2734 +#, no-wrap +msgid "Boost Software License" +msgstr "Лицензия программного обеспечения Boost" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2738 +#, no-wrap +msgid "`CC-BY-1.0`" +msgstr "`CC-BY-1.0`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2739 +#, no-wrap +msgid "Creative Commons Attribution 1.0" +msgstr "Creative Commons с указанием авторства 1.0" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2743 +#, no-wrap +msgid "`CC-BY-2.0`" +msgstr "`CC-BY-2.0`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2744 +#, no-wrap +msgid "Creative Commons Attribution 2.0" +msgstr "Creative Commons с указанием авторства 2.0" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2748 +#, no-wrap +msgid "`CC-BY-2.5`" +msgstr "`CC-BY-2.5`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2749 +#, no-wrap +msgid "Creative Commons Attribution 2.5" +msgstr "Creative Commons с указанием авторства 2.5" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2753 +#, no-wrap +msgid "`CC-BY-3.0`" +msgstr "`CC-BY-3.0`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2754 +#, no-wrap +msgid "Creative Commons Attribution 3.0" +msgstr "Creative Commons с указанием авторства 3.0" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2758 +#, no-wrap +msgid "`CC-BY-4.0`" +msgstr "`CC-BY-4.0`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2759 +#, no-wrap +msgid "Creative Commons Attribution 4.0" +msgstr "Creative Commons с указанием авторства 4.0" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2763 +#, no-wrap +msgid "`CC-BY-NC-1.0`" +msgstr "`CC-BY-NC-1.0`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2764 +#, no-wrap +msgid "Creative Commons Attribution Non Commercial 1.0" +msgstr "Creative Commons с указанием авторства – некоммерческая 1.0" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2767 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2772 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2777 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2782 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2787 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2792 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2797 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2802 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2807 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2812 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2817 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2822 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2827 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2832 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2837 +#, no-wrap +msgid "`dist-mirror``pkg-mirror``auto-accept`" +msgstr "`dist-mirror``pkg-mirror``auto-accept`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2768 +#, no-wrap +msgid "`CC-BY-NC-2.0`" +msgstr "`CC-BY-NC-2.0`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2769 +#, no-wrap +msgid "Creative Commons Attribution Non Commercial 2.0" +msgstr "Creative Commons с указанием авторства – некоммерческая 2.0" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2773 +#, no-wrap +msgid "`CC-BY-NC-2.5`" +msgstr "`CC-BY-NC-2.5`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2774 +#, no-wrap +msgid "Creative Commons Attribution Non Commercial 2.5" +msgstr "Creative Commons с указанием авторства – некоммерческая 2.5" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2778 +#, no-wrap +msgid "`CC-BY-NC-3.0`" +msgstr "`CC-BY-NC-3.0`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2779 +#, no-wrap +msgid "Creative Commons Attribution Non Commercial 3.0" +msgstr "Creative Commons с указанием авторства – некоммерческая 3.0" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2783 +#, no-wrap +msgid "`CC-BY-NC-4.0`" +msgstr "`CC-BY-NC-4.0`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2784 +#, no-wrap +msgid "Creative Commons Attribution Non Commercial 4.0" +msgstr "Creative Commons с указанием авторства – некоммерческая 4.0" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2788 +#, no-wrap +msgid "`CC-BY-NC-ND-1.0`" +msgstr "`CC-BY-NC-ND-1.0`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2789 +#, no-wrap +msgid "Creative Commons Attribution Non Commercial No Derivatives 1.0" +msgstr "Creative Commons с указанием авторства – некоммерческая – без производных 1.0" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2793 +#, no-wrap +msgid "`CC-BY-NC-ND-2.0`" +msgstr "`CC-BY-NC-ND-2.0`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2794 +#, no-wrap +msgid "Creative Commons Attribution Non Commercial No Derivatives 2.0" +msgstr "Creative Commons с указанием авторства – некоммерческая – без производных 2.0" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2798 +#, no-wrap +msgid "`CC-BY-NC-ND-2.5`" +msgstr "`CC-BY-NC-ND-2.5`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2799 +#, no-wrap +msgid "Creative Commons Attribution Non Commercial No Derivatives 2.5" +msgstr "Creative Commons с указанием авторства – некоммерческая – без производных 2.5" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2803 +#, no-wrap +msgid "`CC-BY-NC-ND-3.0`" +msgstr "`CC-BY-NC-ND-3.0`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2804 +#, no-wrap +msgid "Creative Commons Attribution Non Commercial No Derivatives 3.0" +msgstr "Creative Commons с указанием авторства – некоммерческая – без производных 3.0" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2808 +#, no-wrap +msgid "`CC-BY-NC-ND-4.0`" +msgstr "`CC-BY-NC-ND-4.0`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2809 +#, no-wrap +msgid "Creative Commons Attribution Non Commercial No Derivatives 4.0" +msgstr "Creative Commons с указанием авторства – некоммерческая – без производных 4.0" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2813 +#, no-wrap +msgid "`CC-BY-NC-SA-1.0`" +msgstr "`CC-BY-NC-SA-1.0`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2814 +#, no-wrap +msgid "Creative Commons Attribution Non Commercial Share Alike 1.0" +msgstr "Creative Commons с указанием авторства – некоммерческая – на тех же условиях 1.0" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2818 +#, no-wrap +msgid "`CC-BY-NC-SA-2.0`" +msgstr "`CC-BY-NC-SA-2.0`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2819 +#, no-wrap +msgid "Creative Commons Attribution Non Commercial Share Alike 2.0" +msgstr "Creative Commons с указанием авторства – некоммерческая – на тех же условиях 2.0" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2823 +#, no-wrap +msgid "`CC-BY-NC-SA-2.5`" +msgstr "`CC-BY-NC-SA-2.5`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2824 +#, no-wrap +msgid "Creative Commons Attribution Non Commercial Share Alike 2.5" +msgstr "Creative Commons с указанием авторства – некоммерческая – на тех же условиях 2.5" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2828 +#, no-wrap +msgid "`CC-BY-NC-SA-3.0`" +msgstr "`CC-BY-NC-SA-3.0`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2829 +#, no-wrap +msgid "Creative Commons Attribution Non Commercial Share Alike 3.0" +msgstr "Creative Commons с указанием авторства – некоммерческая – на тех же условиях 3.0" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2833 +#, no-wrap +msgid "`CC-BY-NC-SA-4.0`" +msgstr "`CC-BY-NC-SA-4.0`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2834 +#, no-wrap +msgid "Creative Commons Attribution Non Commercial Share Alike 4.0" +msgstr "Creative Commons с указанием авторства – некоммерческая – на тех же условиях 4.0" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2838 +#, no-wrap +msgid "`CC-BY-ND-1.0`" +msgstr "`CC-BY-ND-1.0`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2839 +#, no-wrap +msgid "Creative Commons Attribution No Derivatives 1.0" +msgstr "Creative Commons с указанием авторства – без производных 1.0" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2843 +#, no-wrap +msgid "`CC-BY-ND-2.0`" +msgstr "`CC-BY-ND-2.0`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2844 +#, no-wrap +msgid "Creative Commons Attribution No Derivatives 2.0" +msgstr "Creative Commons с указанием авторства – без производных 2.0" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2848 +#, no-wrap +msgid "`CC-BY-ND-2.5`" +msgstr "`CC-BY-ND-2.5`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2849 +#, no-wrap +msgid "Creative Commons Attribution No Derivatives 2.5" +msgstr "Creative Commons с указанием авторства – без производных 2.5" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2853 +#, no-wrap +msgid "`CC-BY-ND-3.0`" +msgstr "`CC-BY-ND-3.0`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2854 +#, no-wrap +msgid "Creative Commons Attribution No Derivatives 3.0" +msgstr "Creative Commons с указанием авторства – без производных 3.0" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2858 +#, no-wrap +msgid "`CC-BY-ND-4.0`" +msgstr "`CC-BY-ND-4.0`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2859 +#, no-wrap +msgid "Creative Commons Attribution No Derivatives 4.0" +msgstr "Creative Commons с указанием авторства – без производных 4.0" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2863 +#, no-wrap +msgid "`CC-BY-SA-1.0`" +msgstr "`CC-BY-SA-1.0`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2864 +#, no-wrap +msgid "Creative Commons Attribution Share Alike 1.0" +msgstr "Creative Commons с указанием авторства – на тех же условиях 1.0" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2868 +#, no-wrap +msgid "`CC-BY-SA-2.0`" +msgstr "`CC-BY-SA-2.0`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2869 +#, no-wrap +msgid "Creative Commons Attribution Share Alike 2.0" +msgstr "Creative Commons с указанием авторства – на тех же условиях 2.0" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2873 +#, no-wrap +msgid "`CC-BY-SA-2.5`" +msgstr "`CC-BY-SA-2.5`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2874 +#, no-wrap +msgid "Creative Commons Attribution Share Alike 2.5" +msgstr "Creative Commons с указанием авторства – на тех же условиях 2.5" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2878 +#, no-wrap +msgid "`CC-BY-SA-3.0`" +msgstr "`CC-BY-SA-3.0`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2879 +#, no-wrap +msgid "Creative Commons Attribution Share Alike 3.0" +msgstr "Creative Commons с указанием авторства – на тех же условиях 3.0" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2883 +#, no-wrap +msgid "`CC-BY-SA-4.0`" +msgstr "`CC-BY-SA-4.0`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2884 +#, no-wrap +msgid "Creative Commons Attribution Share Alike 4.0" +msgstr "Creative Commons с указанием авторства – на тех же условиях 4.0" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2888 +#, no-wrap +msgid "`CC0-1.0`" +msgstr "`CC0-1.0`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2889 +#, no-wrap +msgid "Creative Commons Zero v1.0 Universal" +msgstr "Creative Commons Zero v1.0 Universal (Отказ от прав 1.0 Универсальная)" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2890 +#, no-wrap +msgid "`FSF GPL COPYFREE`" +msgstr "`FSF GPL COPYFREE`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2893 +#, no-wrap +msgid "`CDDL`" +msgstr "`CDDL`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2894 +#, no-wrap +msgid "Common Development and Distribution License" +msgstr "Лицензия на совместную разработку и распространение" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2898 +#, no-wrap +msgid "`CPAL-1.0`" +msgstr "`CPAL-1.0`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2899 +#, no-wrap +msgid "Common Public Attribution License" +msgstr "Публичная лицензия общего распространения с указанием авторства" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2903 +#, no-wrap +msgid "`ClArtistic`" +msgstr "`ClArtistic`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2904 +#, no-wrap +msgid "Clarified Artistic License" +msgstr "Уточнённая художественная лицензия" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2908 +#, no-wrap +msgid "`EPL`" +msgstr "`EPL`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2909 +#, no-wrap +msgid "Eclipse Public License" +msgstr "Публичная лицензия Eclipse" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2913 +#, no-wrap +msgid "`GFDL`" +msgstr "`GFDL`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2914 +#, no-wrap +msgid "GNU Free Documentation License" +msgstr "GNU Свободная лицензия на документацию" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2918 +#, no-wrap +msgid "`GMGPL`" +msgstr "`GMGPL`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2919 +#, no-wrap +msgid "GNAT Modified General Public License" +msgstr "Модифицированная Общедоступная лицензия GNAT" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2923 +#, no-wrap +msgid "`GPLv1`" +msgstr "`GPLv1`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2924 +#, no-wrap +msgid "GNU General Public License version 1" +msgstr "Универсальная общественная лицензия GNU версии 1" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2928 +#, no-wrap +msgid "`GPLv1+`" +msgstr "`GPLv1+`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2929 +#, no-wrap +msgid "GNU General Public License version 1 (or later)" +msgstr "Универсальная общественная лицензия GNU версии 1 (или более поздняя)" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2933 +#, no-wrap +msgid "`GPLv2`" +msgstr "`GPLv2`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2934 +#, no-wrap +msgid "GNU General Public License version 2" +msgstr "Универсальная общественная лицензия GNU версии 2" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2938 +#, no-wrap +msgid "`GPLv2+`" +msgstr "`GPLv2+`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2939 +#, no-wrap +msgid "GNU General Public License version 2 (or later)" +msgstr "Универсальная общественная лицензия GNU версии 2 (или более поздняя)" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2943 +#, no-wrap +msgid "`GPLv3`" +msgstr "`GPLv3`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2944 +#, no-wrap +msgid "GNU General Public License version 3" +msgstr "Универсальная общественная лицензия GNU версии 3" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2948 +#, no-wrap +msgid "`GPLv3+`" +msgstr "`GPLv3+`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2949 +#, no-wrap +msgid "GNU General Public License version 3 (or later)" +msgstr "Универсальная общественная лицензия GNU версии 3 (или более поздняя)" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2953 +#, no-wrap +msgid "`GPLv3RLE`" +msgstr "`GPLv3RLE`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2954 +#, no-wrap +msgid "GNU GPL version 3 Runtime Library Exception" +msgstr "Исключение для библиотеки времени выполнения GNU GPL версии 3" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2958 +#, no-wrap +msgid "`GPLv3RLE+`" +msgstr "`GPLv3RLE+`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2959 +#, no-wrap +msgid "GNU GPL version 3 Runtime Library Exception (or later)" +msgstr "Исключение для библиотеки времени выполнения GNU GPL версии 3 (или более поздняя)" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2963 +#, no-wrap +msgid "`ISCL`" +msgstr "`ISCL`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2964 +#, no-wrap +msgid "Internet Systems Consortium License" +msgstr "Лицензия Internet Systems Consortium" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2965 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3110 +#, no-wrap +msgid "`FSF GPL OSI COPYFREE`" +msgstr "`FSF GPL OSI COPYFREE`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2968 +#, no-wrap +msgid "`LGPL20`" +msgstr "`LGPL20`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2969 +#, no-wrap +msgid "GNU Library General Public License version 2.0" +msgstr "Общедоступная лицензия GNU для библиотек, версия 2.0" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2973 +#, no-wrap +msgid "`LGPL20+`" +msgstr "`LGPL20+`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2974 +#, no-wrap +msgid "GNU Library General Public License version 2.0 (or later)" +msgstr "Общедоступная лицензия GNU для библиотек, версия 2.0 (или более поздняя)" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2978 +#, no-wrap +msgid "`LGPL21`" +msgstr "`LGPL21`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2979 +#, no-wrap +msgid "GNU Lesser General Public License version 2.1" +msgstr "Универсальная общественная лицензия GNU ограниченного применения, версия 2.1" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2983 +#, no-wrap +msgid "`LGPL21+`" +msgstr "`LGPL21+`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2984 +#, no-wrap +msgid "GNU Lesser General Public License version 2.1 (or later)" +msgstr "Универсальная общественная лицензия GNU ограниченного применения, версия 2.1 (или более поздняя)" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2988 +#, no-wrap +msgid "`LGPL3`" +msgstr "`LGPL3`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2989 +#, no-wrap +msgid "GNU Lesser General Public License version 3" +msgstr "Универсальная общественная лицензия GNU ограниченного применения, версия 3" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2993 +#, no-wrap +msgid "`LGPL3+`" +msgstr "`LGPL3+`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2994 +#, no-wrap +msgid "GNU Lesser General Public License version 3 (or later)" +msgstr "Универсальная общественная лицензия GNU ограниченного применения, версия 3 (или более поздней)" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2998 +#, no-wrap +msgid "`LPPL10`" +msgstr "`LPPL10`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2999 +#, no-wrap +msgid "LaTeX Project Public License version 1.0" +msgstr "Публичная лицензия проекта LaTeX, версия 1.0" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3002 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3007 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3012 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3017 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3022 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3027 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3032 +#, no-wrap +msgid "`dist-mirror dist-sell`" +msgstr "`dist-mirror dist-sell`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3003 +#, no-wrap +msgid "`LPPL11`" +msgstr "`LPPL11`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3004 +#, no-wrap +msgid "LaTeX Project Public License version 1.1" +msgstr "Публичная лицензия проекта LaTeX, версия 1.1" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3008 +#, no-wrap +msgid "`LPPL12`" +msgstr "`LPPL12`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3009 +#, no-wrap +msgid "LaTeX Project Public License version 1.2" +msgstr "Публичная лицензия проекта LaTeX, версия 1.2" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3013 +#, no-wrap +msgid "`LPPL13`" +msgstr "`LPPL13`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3014 +#, no-wrap +msgid "LaTeX Project Public License version 1.3" +msgstr "Публичная лицензия проекта LaTeX, версия 1.3" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3018 +#, no-wrap +msgid "`LPPL13a`" +msgstr "`LPPL13a`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3019 +#, no-wrap +msgid "LaTeX Project Public License version 1.3a" +msgstr "Публичная лицензия проекта LaTeX, версия 1.3a" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3023 +#, no-wrap +msgid "`LPPL13b`" +msgstr "`LPPL13b`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3024 +#, no-wrap +msgid "LaTeX Project Public License version 1.3b" +msgstr "Публичная лицензия проекта LaTeX, версия 1.3b" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3028 +#, no-wrap +msgid "`LPPL13c`" +msgstr "`LPPL13c`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3029 +#, no-wrap +msgid "LaTeX Project Public License version 1.3c" +msgstr "Публичная лицензия проекта LaTeX, версия 1.3c" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3033 +#, no-wrap +msgid "`MIT`" +msgstr "`MIT`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3034 +#, no-wrap +msgid "MIT license / X11 license" +msgstr "Лицензия MIT / Лицензия X11" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3035 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3055 +#, no-wrap +msgid "`COPYFREE FSF GPL OSI`" +msgstr "`COPYFREE FSF GPL OSI`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3038 +#, no-wrap +msgid "`MPL10`" +msgstr "`MPL10`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3039 +#, no-wrap +msgid "Mozilla Public License version 1.0" +msgstr "Публичная лицензия Mozilla, версия 1.0" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3043 +#, no-wrap +msgid "`MPL11`" +msgstr "`MPL11`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3044 +#, no-wrap +msgid "Mozilla Public License version 1.1" +msgstr "Публичная лицензия Mozilla, версия 1.1" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3048 +#, no-wrap +msgid "`MPL20`" +msgstr "`MPL20`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3049 +#, no-wrap +msgid "Mozilla Public License version 2.0" +msgstr "Публичная лицензия Mozilla, версия 2.0" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3053 +#, no-wrap +msgid "`NCSA`" +msgstr "`NCSA`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3054 +#, no-wrap +msgid "University of Illinois/NCSA Open Source License" +msgstr "Открытая лицензия Университета Иллинойса/NCSA" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3058 +#, no-wrap +msgid "`NONE`" +msgstr "`NONE`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3059 +#, no-wrap +msgid "No license specified" +msgstr "Лицензия не указана" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3062 +#, no-wrap +msgid "`none`" +msgstr "`none`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3063 +#, no-wrap +msgid "`OFL10`" +msgstr "`OFL10`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3064 +#, no-wrap +msgid "SIL Open Font License version 1.0 (https://scripts.sil.org/OFL/)" +msgstr "Лицензия SIL Open Font версия 1.0 (https://scripts.sil.org/OFL/)" + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3065 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3070 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3280 +#, no-wrap +msgid "`FONTS`" +msgstr "`FONTS`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3068 +#, no-wrap +msgid "`OFL11`" +msgstr "`OFL11`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3069 +#, no-wrap +msgid "SIL Open Font License version 1.1 (https://scripts.sil.org/OFL/)" +msgstr "Лицензия SIL Open Font версия 1.1 (https://scripts.sil.org/OFL/)" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3073 +#, no-wrap +msgid "`OWL`" +msgstr "`OWL`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3074 +#, no-wrap +msgid "Open Works License (owl.apotheon.org)" +msgstr "Лицензия Открытых Произведений (owl.apotheon.org)" + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3075 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3276 +#, no-wrap +msgid "`COPYFREE`" +msgstr "`COPYFREE`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3078 +#, no-wrap +msgid "`OpenSSL`" +msgstr "`OpenSSL`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3079 +#, no-wrap +msgid "OpenSSL License" +msgstr "Лицензия OpenSSL" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3083 +#, no-wrap +msgid "`PD`" +msgstr "`PD`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3084 +#, no-wrap +msgid "Public Domain" +msgstr "Общественное достояние" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3085 +#, no-wrap +msgid "`GPL COPYFREE`" +msgstr "`GPL COPYFREE`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3088 +#, no-wrap +msgid "`PHP202`" +msgstr "`PHP202`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3089 +#, no-wrap +msgid "PHP License version 2.02" +msgstr "Лицензия PHP версии 2.02" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3093 +#, no-wrap +msgid "`PHP30`" +msgstr "`PHP30`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3094 +#, no-wrap +msgid "PHP License version 3.0" +msgstr "Лицензия PHP версии 3.0" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3098 +#, no-wrap +msgid "`PHP301`" +msgstr "`PHP301`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3099 +#, no-wrap +msgid "PHP License version 3.01" +msgstr "Лицензия PHP версии 3.01" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3103 +#, no-wrap +msgid "`PSFL`" +msgstr "`PSFL`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3104 +#, no-wrap +msgid "Python Software Foundation License" +msgstr "Лицензия Python Software Foundation" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3108 +#, no-wrap +msgid "`PostgreSQL`" +msgstr "`PostgreSQL`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3109 +#, no-wrap +msgid "PostgreSQL License" +msgstr "Лицензия PostgreSQL" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3113 +#, no-wrap +msgid "`RUBY`" +msgstr "`RUBY`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3114 +#, no-wrap +msgid "Ruby License" +msgstr "Лицензия Ruby" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3118 +#, no-wrap +msgid "`UNLICENSE`" +msgstr "`UNLICENSE`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3119 +#, no-wrap +msgid "The Unlicense" +msgstr "Отказ от лицензии (The Unlicense)" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3120 +#, no-wrap +msgid "`COPYFREE FSF GPL`" +msgstr "`COPYFREE FSF GPL`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3123 +#, no-wrap +msgid "`WTFPL`" +msgstr "`WTFPL`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3124 +#, no-wrap +msgid "Do What the Fuck You Want To Public License version 2" +msgstr "Публичная лицензия \"Делай что хочешь\" версия 2" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3125 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3130 +#, no-wrap +msgid "`GPL FSF COPYFREE`" +msgstr "`GPL FSF COPYFREE`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3128 +#, no-wrap +msgid "`WTFPL1`" +msgstr "`WTFPL1`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3129 +#, no-wrap +msgid "Do What the Fuck You Want To Public License version 1" +msgstr "Публичная лицензия \"Делай что хочешь\" версия 1" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3133 +#, no-wrap +msgid "`ZLIB`" +msgstr "`ZLIB`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3134 +#, no-wrap +msgid "zlib License" +msgstr "Лицензия zlib" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3135 +#, no-wrap +msgid "`GPL FSF OSI`" +msgstr "`GPL FSF OSI`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3138 +#, no-wrap +msgid "`ZPL21`" +msgstr "`ZPL21`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3139 +#, no-wrap +msgid "Zope Public License version 2.1" +msgstr "Публичная лицензия Zope версия 2.1" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3140 +#, no-wrap +msgid "`GPL OSI`" +msgstr "`GPL OSI`" + +#. type: Title === +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3144 +#, no-wrap +msgid "`LICENSE_PERMS` and `LICENSE_PERMS_NAME_`" +msgstr "`LICENSE_PERMS` и `LICENSE_PERMS_NAME_`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3147 +msgid "Permissions. use `none` if empty." +msgstr "Разрешения. Используйте `none`, если пусто." + +#. type: Block title +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3148 +#, no-wrap +msgid "License Permissions List" +msgstr "Список разрешений лицензии" + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3150 +#, no-wrap +msgid "`dist-mirror`" +msgstr "`dist-mirror`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3153 +msgid "" +"Redistribution of the distribution files is permitted. The distribution " +"files will be added to the FreeBSD `MASTER_SITE_BACKUP` CDN." +msgstr "" +"Разрешается распространение дистрибутивных файлов. Дистрибутивные файлы " +"будут добавлены в CDN `MASTER_SITE_BACKUP` FreeBSD." + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3155 +#, no-wrap +msgid "`no-dist-mirror`" +msgstr "`no-dist-mirror`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3159 +msgid "" +"Redistribution of the distribution files is prohibited. This is equivalent " +"to setting crossref:special[porting-restrictions-restricted,`RESTRICTED`]. " +"The distribution files will _not_ be added to the FreeBSD " +"`MASTER_SITE_BACKUP` CDN." +msgstr "" +"Распространение дистрибутивных файлов запрещено. Это эквивалентно установке " +"crossref:special[porting-restrictions-restricted,`RESTRICTED`]. " +"Дистрибутивные файлы _не_ будут добавлены в CDN `MASTER_SITE_BACKUP` FreeBSD." + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3161 +#, no-wrap +msgid "`dist-sell`" +msgstr "`dist-sell`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3164 +msgid "" +"Selling of distribution files is permitted. The distribution files will be " +"present on the installer images." +msgstr "" +"Продажа файлов дистрибутива разрешена. Файлы дистрибутива будут " +"присутствовать на образах установщика." + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3166 +#, no-wrap +msgid "`no-dist-sell`" +msgstr "`no-dist-sell`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3169 +msgid "" +"Selling of distribution files is prohibited. This is equivalent to setting " +"crossref:special[porting-restrictions-no_cdrom,`NO_CDROM`]." +msgstr "" +"Продажа файлов дистрибутива запрещена. Это эквивалентно установке " +"crossref:special[porting-restrictions-no_cdrom,`NO_CDROM`]." + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3171 +#, no-wrap +msgid "`pkg-mirror`" +msgstr "`pkg-mirror`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3174 +msgid "" +"Free redistribution of package is permitted. The package will be " +"distributed on the FreeBSD package CDN https://pkg.freebsd.org/[https://" +"pkg.freebsd.org/]." +msgstr "" +"Свободное распространение пакета разрешено. Пакет будет распространяться " +"через CDN пакетов FreeBSD https://pkg.freebsd.org/[https://pkg.freebsd.org/]." + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3176 +#, no-wrap +msgid "`no-pkg-mirror`" +msgstr "`no-pkg-mirror`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3180 +msgid "" +"Free redistribution of package is prohibited. Equivalent to setting " +"crossref:special[porting-restrictions-no_package,`NO_PACKAGE`]. The package " +"will _not_ be distributed from the FreeBSD package CDN https://" +"pkg.freebsd.org/[https://pkg.freebsd.org/]." +msgstr "" +"Свободное распространение пакета запрещено. Эквивалентно установке " +"crossref:special[porting-restrictions-no_package,`NO_PACKAGE`]. Пакет _не_ " +"будет распространяться через FreeBSD CDN для пакетов https://pkg.freebsd.org/" +"[https://pkg.freebsd.org/]." + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3182 +#, no-wrap +msgid "`pkg-sell`" +msgstr "`pkg-sell`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3185 +msgid "" +"Selling of package is permitted. The package will be present on the " +"installer images." +msgstr "" +"Продажа пакета разрешена. Пакет будет присутствовать на образах установщика." + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3187 +#, no-wrap +msgid "`no-pkg-sell`" +msgstr "`no-pkg-sell`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3191 +msgid "" +"Selling of package is prohibited. This is equivalent to setting " +"crossref:special[porting-restrictions-no_cdrom,`NO_CDROM`]. The package " +"will _not_ be present on the installer images." +msgstr "" +"Продажа пакета запрещена. Это эквивалентно установке " +"crossref:special[porting-restrictions-no_cdrom,`NO_CDROM`]. Пакет _не_ будет " +"присутствовать на образах установщика." + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3193 +#, no-wrap +msgid "`auto-accept`" +msgstr "`auto-accept`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3197 +msgid "" +"License is accepted by default. Prompts to accept a license are not " +"displayed unless the user has defined `LICENSES_ASK`. Use this unless the " +"license states the user must accept the terms of the license." +msgstr "" +"Лицензия принимается по умолчанию. Запросы на принятие лицензии не " +"отображаются, если пользователь не определил `LICENSES_ASK`. Используйте " +"это, если в лицензии не указано, что пользователь должен принять условия " +"лицензии." + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3199 +#, no-wrap +msgid "`no-auto-accept`" +msgstr "`no-auto-accept`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3203 +msgid "" +"License is not accepted by default. The user will always be asked to " +"confirm the acceptance of this license. This must be used if the license " +"states that the user must accept its terms." +msgstr "" +"Лицензия не принимается по умолчанию. Пользователь всегда будет запрошен на " +"подтверждение принятия данной лицензии. Это должно использоваться, если " +"лицензия требует, чтобы пользователь принял её условия." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3205 +msgid "" +"When both `_permission_` and `no-_permission_` is present the `no-" +"_permission_` will cancel `_permission_`." +msgstr "" +"Когда присутствуют и `_permission_`, и `no-_permission_`, то `no-" +"_permission_` отменяет `_permission_`." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3207 +msgid "" +"When `_permission_` is not present, it is considered to be a `no-" +"_permission_`." +msgstr "Когда `_permission_` отсутствует, это считается как `no-_permission_`." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3211 +msgid "" +"Some missing permissions will prevent a port (and all ports depending on it) " +"from being usable by package users:" +msgstr "" +"Некоторые отсутствующие разрешения могут сделать порт (и все зависящие от " +"него порты) непригодными для использования пользователями пакетов:" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3213 +msgid "" +"A port without the `auto-accept` permission will never be be built and all " +"the ports depending on it will be ignored." +msgstr "" +"Порт без разрешения `auto-accept` никогда не будет собран, и все зависящие " +"от него порты будут проигнорированы." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3215 +msgid "" +"A port without the `pkg-mirror` permission, and any ports that depend on it, " +"will be removed after the build, thus ensuring they are not distributed." +msgstr "" +"Порт без разрешения `pkg-mirror`, а также любые порты, зависящие от него, " +"будут удалены после сборки, что гарантирует их отсутствие в дистрибуции." + +#. type: Block title +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3218 +#, no-wrap +msgid "Nonstandard License" +msgstr "Нестандартная лицензия" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3222 +msgid "" +"Read the terms of the license and translate those using the available " +"permissions." +msgstr "" +"Прочитайте условия лицензии и переведите их, используя доступные разрешения." + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3230 +#, no-wrap +msgid "" +"LICENSE= UNKNOWN\n" +"LICENSE_NAME= unknown\n" +"LICENSE_TEXT= This program is NOT in public domain.\\\n" +" It can be freely distributed for non-commercial purposes only.\n" +"LICENSE_PERMS= dist-mirror no-dist-sell pkg-mirror no-pkg-sell auto-accept\n" +msgstr "" +"LICENSE= UNKNOWN\n" +"LICENSE_NAME= unknown\n" +"LICENSE_TEXT= This program is NOT in public domain.\\\n" +" It can be freely distributed for non-commercial purposes only.\n" +"LICENSE_PERMS= dist-mirror no-dist-sell pkg-mirror no-pkg-sell auto-accept\n" + +#. type: Block title +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3235 +#, no-wrap +msgid "Standard and Nonstandard Licenses" +msgstr "Стандартные и нестандартные лицензии" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3241 +msgid "" +"Read the terms of the license and express those using the available " +"permissions. In case of doubt, please ask for guidance on the {freebsd-" +"ports}." +msgstr "" +"Прочитайте условия лицензии и укажите их, используя доступные разрешения. В " +"случае сомнений обратитесь за разъяснениями на {freebsd-ports}." + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3249 +#, no-wrap +msgid "" +"LICENSE= WARSOW GPLv2\n" +"LICENSE_COMB= multi\n" +"LICENSE_NAME_WARSOW= Warsow Content License\n" +"LICENSE_FILE_WARSOW= ${WRKSRC}/docs/license.txt\n" +"LICENSE_PERMS_WARSOW= dist-mirror pkg-mirror auto-accept\n" +msgstr "" +"LICENSE= WARSOW GPLv2\n" +"LICENSE_COMB= multi\n" +"LICENSE_NAME_WARSOW= Warsow Content License\n" +"LICENSE_FILE_WARSOW= ${WRKSRC}/docs/license.txt\n" +"LICENSE_PERMS_WARSOW= dist-mirror pkg-mirror auto-accept\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3255 +msgid "" +"When the permissions of the GPLv2 and the UNKNOWN licenses are mixed, the " +"port ends up with `dist-mirror dist-sell pkg-mirror pkg-sell auto-accept " +"dist-mirror no-dist-sell pkg-mirror no-pkg-sell auto-accept`. The `no-" +"_permissions_` cancel the _permissions_. The resulting list of permissions " +"are _dist-mirror pkg-mirror auto-accept_. The distribution files and the " +"packages will not be available on the installer images." +msgstr "" +"Когда разрешения лицензий GPLv2 и UNKNOWN смешиваются, порт получает `dist-" +"mirror dist-sell pkg-mirror pkg-sell auto-accept dist-mirror no-dist-sell " +"pkg-mirror no-pkg-sell auto-accept`. Опции `no-_разрешения_` отменяют " +"соответствующие _разрешения_. Итоговый список разрешений: _dist-mirror pkg-" +"mirror auto-accept_. Файлы дистрибутива и пакеты не будут доступны в образах " +"установщика." + +#. type: Title === +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3258 +#, no-wrap +msgid "`LICENSE_GROUPS` and `LICENSE_GROUPS_NAME`" +msgstr "`LICENSE_GROUPS` и `LICENSE_GROUPS_NAME`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3261 +msgid "Groups the license belongs." +msgstr "Группы, к которым принадлежит лицензия." + +#. type: Block title +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3262 +#, no-wrap +msgid "Predefined License Groups List" +msgstr "Список предопределенных групп лицензий" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3266 +msgid "" +"Free Software Foundation Approved, see the https://www.fsf.org/licensing/" +"[FSF Licensing & Compliance Team]." +msgstr "" +"Одобрено Free Software Foundation, см. https://www.fsf.org/licensing/" +"[Команда по лицензированию и соответствию FSF]." + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3268 +#, no-wrap +msgid "`GPL`" +msgstr "`GPL`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3270 +msgid "GPL Compatible" +msgstr "Совместимые с GPL" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3274 +msgid "" +"OSI Approved, see the Open Source Initiative https://opensource.org/licenses/" +"[Open Source Licenses] page." +msgstr "" +"Одобрено OSI, см. страницу https://opensource.org/licenses/[Открытых " +"лицензий]." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3278 +msgid "" +"Comply with Copyfree Standard Definition, see the https://copyfree.org/" +"standard/licenses/[Copyfree Licenses] page." +msgstr "" +"Соответствует определению стандарта Copyfree, см. страницу https://" +"copyfree.org/standard/licenses/[лицензий Copyfree]." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3282 +msgid "Font licenses" +msgstr "Лицензии на шрифты" + +#. type: Title === +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3284 +#, no-wrap +msgid "`LICENSE_NAME` and `LICENSE_NAME_NAME`" +msgstr "`LICENSE_NAME` и `LICENSE_NAME_NAME`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3287 +msgid "Full name of the license." +msgstr "Полное название лицензии." + +#. type: Block title +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3289 +#, no-wrap +msgid "`LICENSE_NAME`" +msgstr "`LICENSE_NAME`" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3299 +#, no-wrap +msgid "" +"LICENSE= UNRAR\n" +"LICENSE_NAME= UnRAR License\n" +"LICENSE_FILE= ${WRKSRC}/license.txt\n" +"LICENSE_PERMS= dist-mirror dist-sell pkg-mirror pkg-sell auto-accept\n" +msgstr "" +"LICENSE= UNRAR\n" +"LICENSE_NAME= UnRAR License\n" +"LICENSE_FILE= ${WRKSRC}/license.txt\n" +"LICENSE_PERMS= dist-mirror dist-sell pkg-mirror pkg-sell auto-accept\n" + +#. type: Title === +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3304 +#, no-wrap +msgid "`LICENSE_FILE` and `LICENSE_FILE_NAME`" +msgstr "`LICENSE_FILE` и `LICENSE_FILE_NAME`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3309 +msgid "" +"Full path to the file containing the license text, usually [.filename]#$" +"{WRKSRC}/some/file#. If the file is not in the distfile, and its content is " +"too long to be put in crossref:makefiles[licenses-" +"license_text,`LICENSE_TEXT`], put it in a new file in [.filename]#${FILESDIR}" +"#." +msgstr "" +"Полный путь к файлу, содержащему текст лицензии, обычно [.filename]#$" +"{WRKSRC}/some/file#. Если файл отсутствует в дистрибутиве, а его содержимое " +"слишком длинное для размещения в crossref:makefiles[licenses-" +"license_text,`LICENSE_TEXT`], поместите его в новый файл в [.filename]#$" +"{FILESDIR}#." + +#. type: Block title +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3311 +#, no-wrap +msgid "`LICENSE_FILE`" +msgstr "`LICENSE_FILE`" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3319 +#, no-wrap +msgid "" +"LICENSE=\tGPLv3+\n" +"LICENSE_FILE=\t${WRKSRC}/COPYING\n" +msgstr "" +"LICENSE=\tGPLv3+\n" +"LICENSE_FILE=\t${WRKSRC}/COPYING\n" + +#. type: Title === +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3324 +#, no-wrap +msgid "`LICENSE_TEXT` and `LICENSE_TEXT_NAME`" +msgstr "`LICENSE_TEXT` и `LICENSE_TEXT_NAME`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3328 +msgid "" +"Text to use as a license. Useful when the license is not in the " +"distribution files and its text is short." +msgstr "" +"Текст для использования в качестве лицензии. Полезно, когда лицензия " +"отсутствует в файлах дистрибутива и её текст краток." + +#. type: Block title +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3330 +#, no-wrap +msgid "`LICENSE_TEXT`" +msgstr "`LICENSE_TEXT`" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3341 +#, no-wrap +msgid "" +"LICENSE= UNKNOWN\n" +"LICENSE_NAME= unknown\n" +"LICENSE_TEXT= This program is NOT in public domain.\\\n" +" It can be freely distributed for non-commercial purposes only,\\\n" +" and THERE IS NO WARRANTY FOR THIS PROGRAM.\n" +"LICENSE_PERMS= dist-mirror no-dist-sell pkg-mirror no-pkg-sell auto-accept\n" +msgstr "" +"LICENSE= UNKNOWN\n" +"LICENSE_NAME= unknown\n" +"LICENSE_TEXT= This program is NOT in public domain.\\\n" +" It can be freely distributed for non-commercial purposes only,\\\n" +" and THERE IS NO WARRANTY FOR THIS PROGRAM.\n" +"LICENSE_PERMS= dist-mirror no-dist-sell pkg-mirror no-pkg-sell auto-accept\n" + +#. type: Title === +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3346 +#, no-wrap +msgid "`LICENSE_DISTFILES` and `LICENSE_DISTFILES_NAME`" +msgstr "`LICENSE_DISTFILES` и `LICENSE_DISTFILES_NAME`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3350 +msgid "" +"The distribution files to which the licenses apply. Defaults to all the " +"distribution files." +msgstr "" +"Файлы дистрибутива, к которым применяются лицензии. По умолчанию — все файлы " +"дистрибутива." + +#. type: Block title +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3352 +#, no-wrap +msgid "`LICENSE_DISTFILES`" +msgstr "`LICENSE_DISTFILES`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3357 +msgid "" +"Used when the distribution files do not all have the same license. For " +"example, one has a code license, and another has some artwork that cannot be " +"redistributed:" +msgstr "" +"Используется, когда файлы дистрибутива имеют разные лицензии. Например, один " +"файл имеет лицензию на код, а другой содержит некоторые произведения " +"искусства, которые нельзя распространять:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3362 +#, no-wrap +msgid "" +"MASTER_SITES= SF/some-game\n" +"DISTFILES= ${DISTNAME}${EXTRACT_SUFX} artwork.zip\n" +msgstr "" +"MASTER_SITES= SF/some-game\n" +"DISTFILES= ${DISTNAME}${EXTRACT_SUFX} artwork.zip\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3370 +#, no-wrap +msgid "" +"LICENSE= BSD3CLAUSE ARTWORK\n" +"LICENSE_COMB= dual\n" +"LICENSE_NAME_ARTWORK= The game artwork license\n" +"LICENSE_TEXT_ARTWORK= The README says that the files cannot be redistributed\n" +"LICENSE_PERMS_ARTWORK= pkg-mirror pkg-sell auto-accept\n" +"LICENSE_DISTFILES_BSD3CLAUSE= ${DISTNAME}${EXTRACT_SUFX}\n" +"LICENSE_DISTFILES_ARTWORK= artwork.zip\n" +msgstr "" +"LICENSE= BSD3CLAUSE ARTWORK\n" +"LICENSE_COMB= dual\n" +"LICENSE_NAME_ARTWORK= The game artwork license\n" +"LICENSE_TEXT_ARTWORK= The README says that the files cannot be redistributed\n" +"LICENSE_PERMS_ARTWORK= pkg-mirror pkg-sell auto-accept\n" +"LICENSE_DISTFILES_BSD3CLAUSE= ${DISTNAME}${EXTRACT_SUFX}\n" +"LICENSE_DISTFILES_ARTWORK= artwork.zip\n" + +#. type: Title === +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3375 +#, no-wrap +msgid "`LICENSE_COMB`" +msgstr "`LICENSE_COMB`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3380 +msgid "" +"Set to `multi` if all licenses apply. Set to `dual` if any license " +"applies. Defaults to `single`." +msgstr "" +"Установите значение `multi`, если применяются все лицензии. Установите " +"значение `dual`, если применяется любая из лицензий. По умолчанию " +"используется значение `single`." + +#. type: Block title +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3382 +#, no-wrap +msgid "Dual Licenses" +msgstr "Двойные лицензии" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3389 +msgid "" +"When a port says \"This software may be distributed under the GNU General " +"Public License or the Artistic License\", it means that either license can " +"be used. Use this:" +msgstr "" +"Когда порт содержит указание «Это программное обеспечение может " +"распространяться под GNU General Public License или Artistic License», это " +"означает, что можно использовать любую из этих лицензий. Используйте " +"следующее:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3394 +#, no-wrap +msgid "" +"LICENSE=\tART10 GPLv1\n" +"LICENSE_COMB= dual\n" +msgstr "" +"LICENSE=\tART10 GPLv1\n" +"LICENSE_COMB= dual\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3397 +msgid "If license files are provided, use this:" +msgstr "Если предоставлены файлы лицензий, используйте это:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3404 +#, no-wrap +msgid "" +"LICENSE=\tART10 GPLv1\n" +"LICENSE_COMB= dual\n" +"LICENSE_FILE_ART10= ${WRKSRC}/Artistic\n" +"LICENSE_FILE_GPLv1= ${WRKSRC}/Copying\n" +msgstr "" +"LICENSE=\tART10 GPLv1\n" +"LICENSE_COMB= dual\n" +"LICENSE_FILE_ART10= ${WRKSRC}/Artistic\n" +"LICENSE_FILE_GPLv1= ${WRKSRC}/Copying\n" + +#. type: Block title +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3409 +#, no-wrap +msgid "Multiple Licenses" +msgstr "Множественные лицензии" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3414 +msgid "" +"When part of a port has one license, and another part has a different " +"license, use `multi`:" +msgstr "" +"Если часть порта имеет одну лицензию, а другая часть — другую, используйте " +"`multi`:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3419 +#, no-wrap +msgid "" +"LICENSE=\tGPLv2 LGPL21+\n" +"LICENSE_COMB=\tmulti\n" +msgstr "" +"LICENSE=\tGPLv2 LGPL21+\n" +"LICENSE_COMB=\tmulti\n" + +#. type: Title == +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3424 +#, no-wrap +msgid "`PORTSCOUT`" +msgstr "`PORTSCOUT`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3427 +msgid "" +"Portscout is an automated distfile check utility for the FreeBSD Ports " +"Collection, described in detail in crossref:keeping-up[distfile-" +"survey,Portscout: the FreeBSD Ports Distfile Scanner]." +msgstr "" +"Portscout — это автоматизированная утилита проверки distfile для Коллекции " +"портов FreeBSD, подробно описанная в crossref:keeping-up[distfile-" +"survey,Portscout: сканирование distfile портов FreeBSD]." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3429 +msgid "" +"`PORTSCOUT` defines special conditions within which the Portscout distfile " +"scanner is restricted." +msgstr "" +"`PORTSCOUT` определяет специальные условия, в рамках которых работа сканера " +"дистрибутивных файлов Portscout ограничена." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3431 +msgid "Situations where `PORTSCOUT` is set include:" +msgstr "Ситуации, когда установлена переменная `PORTSCOUT`, включают:" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3433 +msgid "" +"When distfiles have to be ignored for specific versions. For example, to " +"exclude version _8.2_ and version _8.3_ from distfile version checks because " +"they are known to be broken, add:" +msgstr "" +"Когда необходимо игнорировать distfiles для определённых версий. Например, " +"чтобы исключить версию _8.2_ и версию _8.3_ из проверок версий distfiles, " +"так как известно, что они неработоспособны, добавьте:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3437 +#, no-wrap +msgid "PORTSCOUT=\tskipv:8.2,8.3\n" +msgstr "PORTSCOUT=\tskipv:8.2,8.3\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3440 +msgid "" +"When distfile version checks have to be disabled completely. For example, if " +"a port is not going to be updated ever again, add:" +msgstr "" +"Когда проверки версий distfile необходимо полностью отключить. Например, " +"если порт больше не будет обновляться, добавьте:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3444 +#, no-wrap +msgid "PORTSCOUT=\tignore:1\n" +msgstr "PORTSCOUT=\tignore:1\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3447 +msgid "" +"When specific versions or specific major and minor revisions of a distfile " +"must be checked. For example, if only version _0.6.4_ must be monitored " +"because newer versions have compatibility issues with FreeBSD, add:" +msgstr "" +"Когда необходимо проверять конкретные версии или определенные мажорные и " +"минорные редакции distfile. Например, если нужно отслеживать только версию " +"_0.6.4_, потому что более новые версии имеют проблемы совместимости с " +"FreeBSD, добавьте:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3451 +#, no-wrap +msgid "PORTSCOUT=\tlimit:^0\\.6\\.4\n" +msgstr "PORTSCOUT=\tlimit:^0\\.6\\.4\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3454 +msgid "" +"When URLs listing the available versions differ from the download URLs. For " +"example, to limit distfile version checks to the download page for the " +"package:databases/pgtune[] port, add:" +msgstr "" +"Когда URL-адреса, перечисляющие доступные версии, отличаются от URL-адресов " +"загрузки. Например, чтобы ограничить проверку версий distfile страницей " +"загрузки для пакета: package:databases/pgtune[] добавьте:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3458 +#, no-wrap +msgid "PORTSCOUT=\tsite:http://www.renpy.org/dl/release/\n" +msgstr "PORTSCOUT=\tsite:http://www.renpy.org/dl/release/\n" + +#. type: Title == +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3461 +#, no-wrap +msgid "Dependencies" +msgstr "Зависимости" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3468 +msgid "" +"Many ports depend on other ports. This is a very convenient feature of most " +"Unix-like operating systems, including FreeBSD. Multiple ports can share a " +"common dependency, rather than bundling that dependency with every port or " +"package that needs it. There are seven variables that can be used to ensure " +"that all the required bits will be on the user's machine. There are also " +"some pre-supported dependency variables for common cases, plus a few more to " +"control the behavior of dependencies." +msgstr "" +"Многие порты зависят от других портов. Это очень удобная особенность " +"большинства Unix-подобных операционных систем, включая FreeBSD. Несколько " +"портов могут использовать общую зависимость вместо того, чтобы включать эту " +"зависимость в каждый порт или пакет, который в ней нуждается. Существует " +"семь переменных, которые можно использовать для обеспечения наличия всех " +"необходимых компонентов на машине пользователя. Также есть предопределенные " +"переменные зависимостей для распространенных случаев и несколько " +"дополнительных для управления поведением зависимостей." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3474 +msgid "" +"When software has extra dependencies that provide extra features, the base " +"dependencies listed in `*_DEPENDS` should include the extra dependencies " +"that would benefit most users. The base dependencies should never be a " +"\"minimal\" dependency set. The goal is not to include every dependency " +"possible. Only include those that will benefit most people." +msgstr "" +"Когда у программного обеспечения есть дополнительные зависимости, " +"предоставляющие дополнительные возможности, основные зависимости, " +"перечисленные в `*_DEPENDS`, должны включать те дополнительные зависимости, " +"которые будут полезны большинству пользователей. Основные зависимости " +"никогда не должны быть \"минимальным\" набором зависимостей. Цель состоит не " +"в том, чтобы включить все возможные зависимости. Включайте только те, " +"которые будут полезны большинству людей." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3477 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4830 +#, no-wrap +msgid "`LIB_DEPENDS`" +msgstr "`LIB_DEPENDS`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3482 +msgid "" +"This variable specifies the shared libraries this port depends on. It is a " +"list of `_lib:dir_` tuples where `_lib_` is the name of the shared library, " +"`_dir_` is the directory in which to find it in case it is not available. " +"For example," +msgstr "" +"Эта переменная определяет разделяемые библиотеки, от которых зависит данный " +"порт. Это список кортежей вида `_lib:dir_`, где `_lib_` — имя разделяемой " +"библиотеки, а `_dir_` — директория, в которой её следует искать, если она " +"недоступна. Например," + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3486 +#, no-wrap +msgid "LIB_DEPENDS= libjpeg.so:graphics/jpeg\n" +msgstr "LIB_DEPENDS= libjpeg.so:graphics/jpeg\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3489 +msgid "" +"will check for a shared jpeg library with any version, and descend into the " +"[.filename]#graphics/jpeg# subdirectory of the ports tree to build and " +"install it if it is not found." +msgstr "" +"проверит наличие общей библиотеки jpeg с любой версией и перейдет в " +"подкаталог [.filename]#graphics/jpeg# дерева портов, чтобы собрать и " +"установить её, если она не найдена." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3492 +msgid "" +"The dependency is checked twice, once from within the `build` target and " +"then from within the `install` target. Also, the name of the dependency is " +"put into the package so that `pkg install` (see man:pkg-install[8]) will " +"automatically install it if it is not on the user's system." +msgstr "" +"Зависимость проверяется дважды: один раз внутри цели `build` и затем внутри " +"цели `install`. Также имя зависимости добавляется в пакет, чтобы `pkg " +"install` (см. man:pkg-install[8]) автоматически установил её, если её нет в " +"системе пользователя." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3494 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4831 +#, no-wrap +msgid "`RUN_DEPENDS`" +msgstr "`RUN_DEPENDS`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3499 +msgid "" +"This variable specifies executables or files this port depends on during run-" +"time. It is a list of ``_path:dir_``[:``_target_``] tuples where `_path_` " +"is the name of the executable or file, _dir_ is the directory in which to " +"find it in case it is not available, and _target_ is the target to call in " +"that directory. If _path_ starts with a slash (`/`), it is treated as a " +"file and its existence is tested with `test -e`; otherwise, it is assumed to " +"be an executable, and `which -s` is used to determine if the program exists " +"in the search path." +msgstr "" +"Эта переменная определяет исполняемые файлы или файлы, от которых зависит " +"порт во время выполнения. Это список кортежей ``_path:dir_``[:``_target_``], " +"где `_path_` — это имя исполняемого файла или файла, _dir_ — директория, в " +"которой его следует искать, если он недоступен, а _target_ — цель, которую " +"нужно вызвать в этой директории. Если _path_ начинается с косой черты (`/`), " +"он считается файлом, и его существование проверяется с помощью `test -e`; в " +"противном случае предполагается, что это исполняемый файл, и `which -s` " +"используется для проверки наличия программы в пути поиска." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3501 +msgid "For example," +msgstr "Например," + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3506 +#, no-wrap +msgid "" +"RUN_DEPENDS=\t${LOCALBASE}/news/bin/innd:news/inn \\\n" +"\t\txmlcatmgr:textproc/xmlcatmgr\n" +msgstr "" +"RUN_DEPENDS=\t${LOCALBASE}/news/bin/innd:news/inn \\\n" +"\t\txmlcatmgr:textproc/xmlcatmgr\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3510 +msgid "" +"will check if the file or directory [.filename]#/usr/local/news/bin/innd# " +"exists, and build and install it from the [.filename]#news/inn# subdirectory " +"of the ports tree if it is not found. It will also see if an executable " +"called `xmlcatmgr` is in the search path, and descend into " +"[.filename]#textproc/xmlcatmgr# to build and install it if it is not found." +msgstr "" +"проверит, существует ли файл или каталог [.filename]#/usr/local/news/bin/" +"innd#, и соберет и установит его из подкаталога [.filename]#news/inn# дерева " +"портов, если он не найден. Также будет проверено, находится ли исполняемый " +"файл `xmlcatmgr` в пути поиска, и если он не найден, будет выполнен переход " +"в [.filename]#textproc/xmlcatmgr# для сборки и установки." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3515 +msgid "" +"In this case, `innd` is actually an executable; if an executable is in a " +"place that is not expected to be in the search path, use the full pathname." +msgstr "" +"В этом случае `innd` является исполняемым файлом; если исполняемый файл " +"находится в месте, которое не ожидается в пути поиска, используйте полный " +"путь." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3520 +msgid "The official search `PATH` used on the ports build cluster is" +msgstr "Официальный путь поиска `PATH`, используемый в кластере сборки портов" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3524 +#, no-wrap +msgid "/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin\n" +msgstr "/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin\n" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3531 +msgid "" +"The dependency is checked from within the `install` target. Also, the name " +"of the dependency is put into the package so that `pkg install` (see man:pkg-" +"install[8]) will automatically install it if it is not on the user's " +"system. The _target_ part can be omitted if it is the same as " +"`DEPENDS_TARGET`." +msgstr "" +"Зависимость проверяется внутри цели `install`. Также имя зависимости " +"добавляется в пакет, чтобы команда `pkg install` (см. man:pkg-install[8]) " +"автоматически установила её, если она отсутствует в системе пользователя. " +"Часть _target_ может быть опущена, если она совпадает с `DEPENDS_TARGET`." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3534 +msgid "" +"A quite common situation is when `RUN_DEPENDS` is literally the same as " +"`BUILD_DEPENDS`, especially if ported software is written in a scripted " +"language or if it requires the same build and run-time environment. In this " +"case, it is both tempting and intuitive to directly assign one to the other:" +msgstr "" +"Довольно распространённая ситуация, когда `RUN_DEPENDS` буквально совпадает " +"с `BUILD_DEPENDS`, особенно если портируемое программное обеспечение " +"написано на скриптовом языке или требует одинаковой среды для сборки и " +"выполнения. В этом случае возникает соблазн и интуитивное желание напрямую " +"присвоить одно другому:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3538 +#, no-wrap +msgid "RUN_DEPENDS=\t${BUILD_DEPENDS}\n" +msgstr "RUN_DEPENDS=\t${BUILD_DEPENDS}\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3545 +msgid "" +"However, such assignment can pollute run-time dependencies with entries not " +"defined in the port's original `BUILD_DEPENDS`. This happens because of " +"man:make[1]'s lazy evaluation of variable assignment. Consider a " +"[.filename]#Makefile# with `USE_*`, which are processed by [.filename]#ports/" +"Mk/bsd.*.mk# to augment initial build dependencies. For example, `USES= " +"gmake` adds package:devel/gmake[] to `BUILD_DEPENDS`. To prevent such " +"additional dependencies from polluting `RUN_DEPENDS`, create another " +"variable with the current content of `BUILD_DEPENDS` and assign it to both " +"`BUILD_DEPENDS` and `RUN_DEPENDS`:" +msgstr "" +"Однако такое присваивание может загрязнить зависимости во время выполнения " +"записями, не определёнными в оригинальном `BUILD_DEPENDS` порта. Это " +"происходит из-за ленивого вычисления присваивания переменных в man:make[1]. " +"Рассмотрим [.filename]#Makefile# с `USE_*`, которые обрабатываются " +"[.filename]#ports/Mk/bsd.*.mk# для добавления начальных зависимостей сборки. " +"Например, `USES= gmake` добавляет package:devel/gmake[] в `BUILD_DEPENDS`. " +"Чтобы предотвратить попадание таких дополнительных зависимостей в " +"`RUN_DEPENDS`, создайте другую переменную с текущим содержимым " +"`BUILD_DEPENDS` и присвойте её как `BUILD_DEPENDS`, так и `RUN_DEPENDS`:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3552 +#, no-wrap +msgid "" +"MY_DEPENDS=\tsome:devel/some \\\n" +"\t\tother:lang/other\n" +"BUILD_DEPENDS=\t${MY_DEPENDS}\n" +"RUN_DEPENDS=\t${MY_DEPENDS}\n" +msgstr "" +"MY_DEPENDS=\tsome:devel/some \\\n" +"\t\tother:lang/other\n" +"BUILD_DEPENDS=\t${MY_DEPENDS}\n" +"RUN_DEPENDS=\t${MY_DEPENDS}\n" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3558 +msgid "" +"_Do not_ use `:=` to assign `BUILD_DEPENDS` to `RUN_DEPENDS` or vice-versa. " +"All variables are expanded immediately, which is exactly the wrong thing to " +"do and almost always a failure." +msgstr "" +"_Не используйте_ `:=` для присваивания `BUILD_DEPENDS` в `RUN_DEPENDS` или " +"наоборот. Все переменные раскрываются немедленно, что является совершенно " +"неправильным и почти всегда приводит к ошибке." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3561 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4829 +#, no-wrap +msgid "`BUILD_DEPENDS`" +msgstr "`BUILD_DEPENDS`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3566 +msgid "" +"This variable specifies executables or files this port requires to build. " +"Like `RUN_DEPENDS`, it is a list of ``_path:dir_``[:``_target_``] tuples. " +"For example," +msgstr "" +"Эта переменная указывает исполняемые файлы или файлы, необходимые для сборки " +"данного порта. Как и `RUN_DEPENDS`, это список кортежей " +"``_path:dir_``[:``_target_``]. Например," + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3570 +#, no-wrap +msgid "BUILD_DEPENDS=\tunzip:archivers/unzip\n" +msgstr "BUILD_DEPENDS=\tunzip:archivers/unzip\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3573 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3611 +msgid "" +"will check for an executable called `unzip`, and descend into the " +"[.filename]#archivers/unzip# subdirectory of the ports tree to build and " +"install it if it is not found." +msgstr "" +"проверит наличие исполняемого файла с именем `unzip` и перейдет в подкаталог " +"[.filename]#archivers/unzip# дерева портов, чтобы собрать и установить его, " +"если он не будет найден." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3579 +msgid "" +"\"build\" here means everything from extraction to compilation. The " +"dependency is checked from within the `extract` target. The _target_ part " +"can be omitted if it is the same as `DEPENDS_TARGET`" +msgstr "" +"\"build\" здесь означает все процессы от извлечения до компиляции. " +"Зависимость проверяется внутри цели `extract`. Часть _target_ может быть " +"опущена, если она совпадает с `DEPENDS_TARGET`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3582 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4828 +#, no-wrap +msgid "`FETCH_DEPENDS`" +msgstr "`FETCH_DEPENDS`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3587 +msgid "" +"This variable specifies executables or files this port requires to fetch. " +"Like the previous two, it is a list of ``_path:dir_``[:``_target_``] " +"tuples. For example," +msgstr "" +"Эта переменная определяет исполняемые файлы или файлы, необходимые для " +"загрузки этого порта. Как и предыдущие две, это список кортежей " +"``_path:dir_``[:``_target_``]. Например," + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3591 +#, no-wrap +msgid "FETCH_DEPENDS=\tncftp2:net/ncftp2\n" +msgstr "FETCH_DEPENDS=\tncftp2:net/ncftp2\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3594 +msgid "" +"will check for an executable called `ncftp2`, and descend into the " +"[.filename]#net/ncftp2# subdirectory of the ports tree to build and install " +"it if it is not found." +msgstr "" +"проверит наличие исполняемого файла с именем `ncftp2` и перейдет в " +"подкаталог [.filename]#net/ncftp2# дерева портов для сборки и установки, " +"если файл не будет найден." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3597 +msgid "" +"The dependency is checked from within the `fetch` target. The _target_ part " +"can be omitted if it is the same as `DEPENDS_TARGET`." +msgstr "" +"Зависимость проверяется внутри цели `fetch`. Часть _target_ может быть " +"опущена, если она совпадает с `DEPENDS_TARGET`." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3599 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4826 +#, no-wrap +msgid "`EXTRACT_DEPENDS`" +msgstr "`EXTRACT_DEPENDS`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3604 +msgid "" +"This variable specifies executables or files this port requires for " +"extraction. Like the previous, it is a list of " +"``_path:dir_``[:``_target_``] tuples. For example," +msgstr "" +"Эта переменная указывает исполняемые файлы или файлы, которые требуются для " +"извлечения данного порта. Как и предыдущая, это список кортежей " +"``_path:dir_``[:``_target_``]. Например," + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3608 +#, no-wrap +msgid "EXTRACT_DEPENDS=\tunzip:archivers/unzip\n" +msgstr "EXTRACT_DEPENDS=\tunzip:archivers/unzip\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3614 +msgid "" +"The dependency is checked from within the `extract` target. The _target_ " +"part can be omitted if it is the same as `DEPENDS_TARGET`." +msgstr "" +"Зависимость проверяется внутри цели `extract`. Часть _target_ может быть " +"опущена, если она совпадает с `DEPENDS_TARGET`." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3618 +msgid "" +"Use this variable only if the extraction does not already work (the default " +"assumes `tar`) and cannot be made to work using `USES=tar`, `USES=lha` or " +"`USES=zip` described in crossref:uses[uses,Using `USES` Macros]." +msgstr "" +"Используйте эту переменную только если извлечение уже не работает (по " +"умолчанию предполагается `tar`) и не может быть исправлено с помощью " +"`USES=tar`, `USES=lha` или `USES=zip`, как описано в " +"crossref:uses[uses,Использование макросов `USES`]." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3621 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4827 +#, no-wrap +msgid "`PATCH_DEPENDS`" +msgstr "`PATCH_DEPENDS`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3625 +msgid "" +"This variable specifies executables or files this port requires to patch. " +"Like the previous, it is a list of ``_path:dir_``[:``_target_``] tuples. For " +"example," +msgstr "" +"Эта переменная указывает исполняемые файлы или файлы, которые требуются " +"этому порту для применения патчей. Как и предыдущая, это список кортежей " +"``_path:dir_``[:``_target_``]. Например," + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3629 +#, no-wrap +msgid "PATCH_DEPENDS=\t${NONEXISTENT}:java/jfc:extract\n" +msgstr "PATCH_DEPENDS=\t${NONEXISTENT}:java/jfc:extract\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3632 +msgid "" +"will descend into the [.filename]#java/jfc# subdirectory of the ports tree " +"to extract it." +msgstr "" +"будет спускаться в подкаталог [.filename]#java/jfc# дерева портов для его " +"извлечения." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3635 +msgid "" +"The dependency is checked from within the `patch` target. The _target_ part " +"can be omitted if it is the same as `DEPENDS_TARGET`." +msgstr "" +"Зависимость проверяется в рамках цели `patch`. Часть _target_ может быть " +"опущена, если она совпадает с `DEPENDS_TARGET`." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3637 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4908 +#, no-wrap +msgid "`USES`" +msgstr "`USES`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3641 +msgid "" +"Parameters can be added to define different features and dependencies used " +"by the port. They are specified by adding this line to the " +"[.filename]#Makefile#:" +msgstr "" +"Параметры могут быть добавлены для определения различных функций и " +"зависимостей, используемых портом. Они указываются путем добавления этой " +"строки в [.filename]#Makefile#:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3645 +#, no-wrap +msgid "USES= feature[:arguments]\n" +msgstr "USES= feature[:arguments]\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3648 +msgid "" +"For the complete list of values, please see crossref:uses[uses,Using `USES` " +"Macros]." +msgstr "" +"Для полного списка значений обратитесь к crossref:uses[uses,Использование " +"макросов `USES`]." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3652 +msgid "" +"`USES` cannot be assigned after inclusion of [.filename]#bsd.port.pre.mk#." +msgstr "`USES` нельзя назначать после включения [.filename]#bsd.port.pre.mk#." + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3655 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3677 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4205 +#, no-wrap +msgid "`USE_*`" +msgstr "`USE_*`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3662 +msgid "" +"Several variables exist to define common dependencies shared by many ports. " +"Their use is optional, but helps to reduce the verbosity of the port " +"[.filename]##Makefile##s. Each of them is styled as `USE_*`. These " +"variables may be used only in the port [.filename]##Makefile##s and " +"[.filename]#ports/Mk/bsd.*.mk#. They are not meant for user-settable " +"options - use `PORT_OPTIONS` for that purpose." +msgstr "" +"Существует несколько переменных для определения общих зависимостей, " +"используемых многими портами. Их использование необязательно, но помогает " +"сократить многословность [.filename]##Makefile## портов. Каждая из них " +"оформлена как `USE_*`. Эти переменные могут использоваться только в " +"[.filename]##Makefile## портов и [.filename]#ports/Mk/bsd.*.mk#. Они не " +"предназначены для настраиваемых пользователем опций — для этой цели " +"используйте `PORT_OPTIONS`." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3667 +msgid "" +"It is _always_ incorrect to set any `USE_*` in [.filename]#/etc/make.conf#. " +"For instance, setting" +msgstr "" +"Всегда неправильно устанавливать любые `USE_*` в [.filename]#/etc/" +"make.conf#. Например, установка" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3671 +#, no-wrap +msgid "USE_GCC=X.Y\n" +msgstr "USE_GCC=X.Y\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3674 +msgid "" +"(where X.Y is version number) would add a dependency on gccXY for every " +"port, including `lang/gccXY` itself!" +msgstr "" +"(где X.Y — номер версии) добавит зависимость от gccXY для каждого порта, " +"включая сам `lang/gccXY`!" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3683 +#, no-wrap +msgid "Means" +msgstr "Значение" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3684 +#, no-wrap +msgid "`USE_GCC`" +msgstr "`USE_GCC`" + +#. type: Table +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3709 +#, no-wrap +msgid "" +"The port requires GCC (`gcc` or `{g-plus-plus}`) to build.\n" +"Some ports need a specific, old GCC version, some require modern, recent versions.\n" +"It is typically set to `yes` (means always use stable, modern GCC from ports per `GCC_DEFAULT` in [.filename]#Mk/bsd.default-versions.mk#).\n" +"This is also the default value.\n" +"The exact version can also be specified, with a value such as `10`.\n" +"GCC from the base system is used when it satisfies the requested version, otherwise an appropriate compiler is built from ports, and `CC` and `CXX` are adjusted accordingly.\n" +"The `:build` argument following the version specifier adds only a build time dependency to the port.\n" +"\n" +"For example:\n" +"[example]\n" +"====\n" +"[.programlisting]\n" +"....\n" +"USE_GCC=yes\t\t# port requires a current version of GCC\n" +"USE_GCC=11:build\t# port requires GCC 11 at build time only\n" +"....\n" +"====\n" +"\n" +"[NOTE]\n" +"====\n" +"`USE_GCC=any` is deprecated and should not be used in new ports\n" +"====" +msgstr "" +"Порт требует GCC (`gcc` или `{g-plus-plus}`) для сборки.\n" +"Некоторые порты нуждаются в определённой, старой версии GCC, другие требуют современных, актуальных версий.\n" +"Обычно устанавливается в `yes` (означает всегда использовать стабильную, современную версию GCC из портов, согласно `GCC_DEFAULT` в [.filename]#Mk/bsd.default-versions.mk#).\n" +"Это также значение по умолчанию.\n" +"Точная версия также может быть указана, например, значением `10`.\n" +"GCC из базовой системы используется, если он удовлетворяет запрашиваемой версии, в противном случае подходящий компилятор собирается из портов, а `CC` и `CXX` корректируются соответствующим образом.\n" +"Аргумент `:build`, следующий за указанием версии, добавляет только зависимость во время сборки порта.\n" +"\n" +"Например:\n" +"[example]\n" +"====\n" +"[.programlisting]\n" +"....\n" +"USE_GCC=yes\t\t# порт требует текущей версии GCC\n" +"USE_GCC=11:build\t# порт требует GCC 11 только во время сборки\n" +"....\n" +"====\n" +"\n" +"[NOTE]\n" +"====\n" +"`USE_GCC=any` устарел и не должен использоваться в новых портах\n" +"====" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3718 +msgid "" +"Variables related to gmake and [.filename]#configure# are described in " +"crossref:special[building,Building Mechanisms], while autoconf, automake and " +"libtool are described in crossref:special[using-autotools,Using GNU " +"Autotools]. Perl related variables are described in crossref:special[using-" +"perl,Using Perl]. X11 variables are listed in crossref:special[using-" +"x11,Using X11]. crossref:special[using-gnome,Using Gnome] deals with GNOME " +"and crossref:special[using-kde,Using KDE] with KDE related variables. " +"crossref:special[using-java,Using Java] documents Java variables, while " +"crossref:special[using-php,Web Applications, Apache and PHP] contains " +"information on Apache, PHP and PEAR modules. Python is discussed in " +"crossref:special[using-python,Using Python], while Ruby in " +"crossref:special[using-ruby,Using Ruby]. crossref:special[using-sdl,Using " +"SDL] provides variables used for SDL applications and finally, " +"crossref:special[using-xfce,Using Xfce] contains information on Xfce." +msgstr "" +"Переменные, связанные с gmake и [.filename]#configure#, описаны в " +"crossref:special[building,Механизмы сборки], тогда как autoconf, automake и " +"libtool описаны в crossref:special[using-autotools,Использование GNU " +"Autotools]. Переменные, связанные с Perl, описаны в crossref:special[using-" +"perl,Использование Perl]. Переменные X11 перечислены в " +"crossref:special[using-x11,Использование X11]. crossref:special[using-" +"gnome,Использование GNOME] посвящено GNOME, а crossref:special[using-" +"kde,Использование KDE] — переменным, связанным с KDE. crossref:special[using-" +"java,Использование Java] документирует переменные Java, тогда как " +"crossref:special[using-php,Веб-приложения, Apache и PHP] содержит информацию " +"о модулях Apache, PHP и PEAR. Python обсуждается в crossref:special[using-" +"python,Использование Python], а Ruby — в crossref:special[using-" +"ruby,Использование Ruby]. crossref:special[using-sdl,Использование SDL] " +"предоставляет переменные, используемые для приложений SDL, и, наконец, " +"crossref:special[using-xfce,Использование Xfce] содержит информацию о Xfce." + +#. type: Title === +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3720 +#, no-wrap +msgid "Minimal Version of a Dependency" +msgstr "Минимальная версия зависимого пакета" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3723 +msgid "" +"A minimal version of a dependency can be specified in any `*_DEPENDS` except " +"`LIB_DEPENDS` using this syntax:" +msgstr "" +"Минимальная версия зависимого пакета может быть указана в любом `*_DEPENDS`, " +"кроме `LIB_DEPENDS`, используя следующий синтаксис:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3727 +#, no-wrap +msgid "p5-Spiffy>=0.26:devel/p5-Spiffy\n" +msgstr "p5-Spiffy>=0.26:devel/p5-Spiffy\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3731 +msgid "" +"The first field contains a dependent package name, which must match the " +"entry in the package database, a comparison sign, and a package version. " +"The dependency is satisfied if p5-Spiffy-0.26 or newer is installed on the " +"machine." +msgstr "" +"Первое поле содержит имя зависимого пакета, которое должно соответствовать " +"записи в базе данных пакетов, знак сравнения и версию пакета. Зависимость " +"считается удовлетворённой, если на машине установлен p5-Spiffy-0.26 или " +"новее." + +#. type: Title === +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3733 +#, no-wrap +msgid "Notes on Dependencies" +msgstr "Заметки о зависимостях" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3739 +msgid "" +"As mentioned above, the default target to call when a dependency is required " +"is `DEPENDS_TARGET`. It defaults to `install`. This is a user variable; it " +"is never defined in a port's [.filename]#Makefile#. If the port needs a " +"special way to handle a dependency, use the `:target` part of `*_DEPENDS` " +"instead of redefining `DEPENDS_TARGET`." +msgstr "" +"Как упомянуто выше, цель по умолчанию, вызываемая при необходимости " +"зависимости, — это `DEPENDS_TARGET`. По умолчанию она установлена в " +"`install`. Это пользовательская переменная; она никогда не определяется в " +"[.filename]#Makefile# порта. Если порту требуется особый способ обработки " +"зависимости, используйте часть `:target` в `*_DEPENDS` вместо " +"переопределения `DEPENDS_TARGET`." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3743 +msgid "" +"When running `make clean`, the port dependencies are automatically cleaned " +"too. If this is not desirable, define `NOCLEANDEPENDS` in the environment. " +"This may be particularly desirable if the port has something that takes a " +"long time to rebuild in its dependency list, such as KDE, GNOME or Mozilla." +msgstr "" +"При выполнении `make clean` зависимости портов также автоматически " +"очищаются. Если это нежелательно, определите переменную `NOCLEANDEPENDS` в " +"окружении. Это может быть особенно полезно, если среди зависимостей порта " +"есть что-то, что требует много времени для пересборки, например KDE, GNOME " +"или Mozilla." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3748 +msgid "" +"To depend on another port unconditionally, use the variable `${NONEXISTENT}` " +"as the first field of `BUILD_DEPENDS` or `RUN_DEPENDS`. Use this only when " +"the source of the other port is needed. Compilation time can be saved by " +"specifying the target too. For instance" +msgstr "" +"Для безусловной зависимости от другого порта используйте переменную `$" +"{NONEXISTENT}` в качестве первого поля `BUILD_DEPENDS` или `RUN_DEPENDS`. " +"Используйте это только в случае, когда необходим исходный код другого порта. " +"Время компиляции можно сократить, указав также цель. Например" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3752 +#, no-wrap +msgid "BUILD_DEPENDS=\t${NONEXISTENT}:graphics/jpeg:extract\n" +msgstr "BUILD_DEPENDS=\t${NONEXISTENT}:graphics/jpeg:extract\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3755 +msgid "will always descend to the `jpeg` port and extract it." +msgstr "всегда будет переходить к порту `jpeg` и извлекать его." + +#. type: Title === +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3757 +#, no-wrap +msgid "Circular Dependencies Are Fatal" +msgstr "Циклические зависимости фатальны" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3762 +msgid "Do not introduce any circular dependencies into the ports tree!" +msgstr "Не создавайте циклических зависимостей в дереве портов!" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3769 +msgid "" +"The ports building technology does not tolerate circular dependencies. If " +"one is introduced, someone, somewhere in the world, will have their FreeBSD " +"installation broken almost immediately, with many others quickly to follow. " +"These can really be hard to detect. If in doubt, before making that change, " +"make sure to run: `cd /usr/ports; make index`. That process can be quite " +"slow on older machines, but it may be able to save a large number of people, " +"including yourself, a lot of grief in the process." +msgstr "" +"Технология сборки портов не допускает циклических зависимостей. Если такая " +"зависимость будет добавлена, у кого-то в мире почти сразу окажется сломанной " +"установка FreeBSD, а за этим последуют многие другие. Подобные проблемы " +"бывает очень сложно обнаружить. Если есть сомнения, перед внесением " +"изменений обязательно выполните: `cd /usr/ports; make index`. Этот процесс " +"может быть довольно медленным на старых машинах, но он способен избавить " +"множество людей, включая вас, от серьёзных проблем." + +#. type: Title === +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3771 +#, no-wrap +msgid "Problems Caused by Automatic Dependencies" +msgstr "Проблемы, вызванные автоматическими зависимостями" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3776 +msgid "" +"Dependencies must be declared either explicitly or by using the " +"crossref:makefiles[makefile-options,OPTIONS framework]. Using other methods " +"like automatic detection complicates indexing, which causes problems for " +"port and package management." +msgstr "" +"Зависимости должны быть объявлены явно или с использованием " +"crossref:makefiles[makefile-options,OPTIONS framework]. Использование других " +"методов, таких как автоматическое обнаружение, усложняет индексацию, что " +"вызывает проблемы для управления портами и пакетами." + +#. type: Block title +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3778 +#, no-wrap +msgid "Wrong Declaration of an Optional Dependency" +msgstr "Неправильное объявление необязательной зависимости" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3785 +#, 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/makefiles/_index.adoc:3789 +#, no-wrap +msgid "" +".if exists(${LOCALBASE}/bin/foo)\n" +"LIB_DEPENDS=\tlibbar.so:foo/bar\n" +".endif\n" +msgstr "" +".if exists(${LOCALBASE}/bin/foo)\n" +"LIB_DEPENDS=\tlibbar.so:foo/bar\n" +".endif\n" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3798 +msgid "" +"The problem with trying to automatically add dependencies is that files and " +"settings outside an individual port can change at any time. For example: an " +"index is built, then a batch of ports are installed. But one of the ports " +"installs the tested file. The index is now incorrect, because an installed " +"port unexpectedly has a new dependency. The index may still be wrong even " +"after rebuilding if other ports also determine their need for dependencies " +"based on the existence of other files." +msgstr "" +"Проблема с попыткой автоматического добавления зависимостей заключается в " +"том, что файлы и настройки за пределами отдельного порта могут измениться в " +"любой момент. Например: индекс строится, затем устанавливается группа " +"портов. Но один из портов устанавливает проверяемый файл. Теперь индекс " +"неверен, потому что у установленного порта неожиданно появилась новая " +"зависимость. Индекс может оставаться неверным даже после пересборки, если " +"другие порты также определяют свою потребность в зависимостях на основе " +"существования других файлов." + +#. type: Block title +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3800 +#, no-wrap +msgid "Correct Declaration of an Optional Dependency" +msgstr "Правильное объявление необязательной зависимости" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3808 +#, no-wrap +msgid "" +"OPTIONS_DEFINE=\tBAR\n" +"BAR_DESC=\tCalling cellphones via bar\n" +msgstr "" +"OPTIONS_DEFINE=\tBAR\n" +"BAR_DESC=\tCalling cellphones via bar\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3810 +#, no-wrap +msgid "BAR_LIB_DEPENDS=\tlibbar.so:foo/bar\n" +msgstr "BAR_LIB_DEPENDS=\tlibbar.so:foo/bar\n" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3817 +msgid "" +"Testing option variables is the correct method. It will not cause " +"inconsistencies in the index of a batch of ports, provided the options were " +"defined prior to the index build. Simple scripts can then be used to " +"automate the building, installation, and updating of these ports and their " +"packages." +msgstr "" +"Проверка переменных опций является правильным методом. Это не вызовет " +"несоответствий в индексе группы портов, при условии что опции были " +"определены до сборки индекса. Затем можно использовать простые скрипты для " +"автоматизации сборки, установки и обновления этих портов и их пакетов." + +#. type: Title == +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3819 +#, no-wrap +msgid "Slave Ports and `MASTERDIR`" +msgstr "Подчиненные порты и `MASTERDIR`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3826 +msgid "" +"If the port needs to build slightly different versions of packages by having " +"a variable (for instance, resolution, or paper size) take different values, " +"create one subdirectory per package to make it easier for users to see what " +"to do, but try to share as many files as possible between ports. Typically, " +"by using variables cleverly, only a very short [.filename]#Makefile# is " +"needed in all but one of the directories. In the sole " +"[.filename]#Makefile#, use `MASTERDIR` to specify the directory where the " +"rest of the files are. Also, use a variable as part of " +"crossref:makefiles[porting-pkgname,`PKGNAMESUFFIX`] so the packages will " +"have different names." +msgstr "" +"Если порту необходимо собирать немного разные версии пакетов, используя " +"переменную (например, разрешение или размер бумаги) с разными значениями, " +"создайте по одному подкаталогу для каждого пакета, чтобы пользователям было " +"проще понять, что делать, но старайтесь максимально использовать общие файлы " +"между портами. Обычно, при грамотном использовании переменных, во всех " +"каталогах, кроме одного, требуется лишь очень короткий " +"[.filename]#Makefile#. В единственном [.filename]#Makefile# укажите " +"директорию с остальными файлами с помощью `MASTERDIR`. Также используйте " +"переменную как часть crossref:makefiles[porting-pkgname,`PKGNAMESUFFIX`], " +"чтобы пакеты имели разные имена." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3829 +msgid "" +"This will be best demonstrated by an example. This is part of " +"[.filename]#print/pkfonts300/Makefile#;" +msgstr "" +"Это лучше всего продемонстрировать на примере. Это часть файла " +"[.filename]#print/pkfonts300/Makefile#;" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3835 +#, no-wrap +msgid "" +"PORTNAME=\tpkfonts${RESOLUTION}\n" +"PORTVERSION=\t1.0\n" +"DISTFILES=\tpk${RESOLUTION}.tar.gz\n" +msgstr "" +"PORTNAME=\tpkfonts${RESOLUTION}\n" +"PORTVERSION=\t1.0\n" +"DISTFILES=\tpk${RESOLUTION}.tar.gz\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3837 +#, no-wrap +msgid "PLIST=\t\t${PKGDIR}/pkg-plist.${RESOLUTION}\n" +msgstr "PLIST=\t\t${PKGDIR}/pkg-plist.${RESOLUTION}\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3850 +#, no-wrap +msgid "" +".if !defined(RESOLUTION)\n" +"RESOLUTION=\t300\n" +".else\n" +".if ${RESOLUTION} != 118 && ${RESOLUTION} != 240 && \\\n" +"\t${RESOLUTION} != 300 && ${RESOLUTION} != 360 && \\\n" +"\t${RESOLUTION} != 400 && ${RESOLUTION} != 600\n" +".BEGIN:\n" +"\t@${ECHO_MSG} \"Error: invalid value for RESOLUTION: \\\"${RESOLUTION}\\\"\"\n" +"\t@${ECHO_MSG} \"Possible values are: 118, 240, 300, 360, 400 and 600.\"\n" +"\t@${FALSE}\n" +".endif\n" +".endif\n" +msgstr "" +".if !defined(RESOLUTION)\n" +"RESOLUTION=\t300\n" +".else\n" +".if ${RESOLUTION} != 118 && ${RESOLUTION} != 240 && \\\n" +"\t${RESOLUTION} != 300 && ${RESOLUTION} != 360 && \\\n" +"\t${RESOLUTION} != 400 && ${RESOLUTION} != 600\n" +".BEGIN:\n" +"\t@${ECHO_MSG} \"Error: invalid value for RESOLUTION: \\\"${RESOLUTION}\\\"\"\n" +"\t@${ECHO_MSG} \"Possible values are: 118, 240, 300, 360, 400 and 600.\"\n" +"\t@${FALSE}\n" +".endif\n" +".endif\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3854 +msgid "" +"package:print/pkfonts300[] also has all the regular patches, package files, " +"etc. Running `make` there, it will take the default value for the " +"resolution (300) and build the port normally." +msgstr "" +"Пакет `package:print/pkfonts300[]` также содержит все обычные исправления, " +"файлы пакетов и т.д. При запуске `make` в этом месте будет взято значение " +"разрешения по умолчанию (300), и порт будет собран в обычном режиме." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3856 +msgid "" +"As for other resolutions, this is the _entire_ [.filename]#print/pkfonts360/" +"Makefile#:" +msgstr "" +"Что касается других разрешений, это _полный_ [.filename]#print/pkfonts360/" +"Makefile#:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3861 +#, no-wrap +msgid "" +"RESOLUTION=\t360\n" +"MASTERDIR=\t${.CURDIR}/../pkfonts300\n" +msgstr "" +"RESOLUTION=\t360\n" +"MASTERDIR=\t${.CURDIR}/../pkfonts300\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3863 +#, no-wrap +msgid ".include\t\"${MASTERDIR}/Makefile\"\n" +msgstr ".include\t\"${MASTERDIR}/Makefile\"\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3868 +msgid "" +"([.filename]#print/pkfonts118/Makefile#, [.filename]#print/pkfonts600/" +"Makefile#, and all the other are similar). `MASTERDIR` definition tells " +"[.filename]#bsd.port.mk# that the regular set of subdirectories like " +"`FILESDIR` and `SCRIPTDIR` are to be found under [.filename]#pkfonts300#. " +"The `RESOLUTION=360` line will override the `RESOLUTION=300` line in " +"[.filename]#pkfonts300/Makefile# and the port will be built with resolution " +"set to 360." +msgstr "" +"([.filename]#print/pkfonts118/Makefile#, [.filename]#print/pkfonts600/" +"Makefile# и все остальные аналогичны). Определение `MASTERDIR` указывает " +"[.filename]#bsd.port.mk#, что стандартный набор подкаталогов, таких как " +"`FILESDIR` и `SCRIPTDIR`, следует искать в [.filename]#pkfonts300#. Строка " +"`RESOLUTION=360` переопределит строку `RESOLUTION=300` в " +"[.filename]#pkfonts300/Makefile#, и порт будет собран с разрешением, " +"установленным на 360." + +#. type: Title == +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3870 +#, no-wrap +msgid "Man Pages" +msgstr "Страницы Cправочника" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3875 +msgid "" +"If the port anchors its man tree somewhere other than `PREFIX`, use " +"`MANDIRS` to specify those directories. Note that the files corresponding " +"to manual pages must be placed in [.filename]#pkg-plist# along with the rest " +"of the files. The purpose of `MANDIRS` is to enable automatic compression " +"of manual pages, therefore the file names are suffixed with [.filename]#.gz#." +msgstr "" +"Если порт размещает дерево man в другом месте, отличном от `PREFIX`, " +"используйте `MANDIRS` для указания этих каталогов. Обратите внимание, что " +"файлы, соответствующие страницам руководства, должны быть добавлены в " +"[.filename]#pkg-plist# вместе с остальными файлами. Назначение `MANDIRS` — " +"обеспечить автоматическое сжатие страниц руководства, поэтому имена файлов " +"имеют суффикс [.filename]#.gz#." + +#. type: Title == +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3877 +#, no-wrap +msgid "Info Files" +msgstr "Файлы информации" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3884 +msgid "" +"If the package needs to install GNU info files, list them in `INFO` (without " +"the trailing `.info`), one entry per document. These files are assumed to " +"be installed to [.filename]#PREFIX/INFO_PATH#. Change `INFO_PATH` if the " +"package uses a different location. However, this is not recommended. These " +"entries contain just the path relative to [.filename]#PREFIX/INFO_PATH#. " +"For example, package:lang/gcc34[] installs info files to [.filename]#PREFIX/" +"INFO_PATH/gcc34#, and `INFO` will be something like this:" +msgstr "" +"Если пакету требуется установить файлы GNU info, перечислите их в `INFO` " +"(без завершающего `.info`), по одному документу на строку. Предполагается, " +"что эти файлы будут установлены в [.filename]#PREFIX/INFO_PATH#. Измените " +"`INFO_PATH`, если пакет использует другое расположение. Однако это не " +"рекомендуется. Эти записи содержат только путь относительно " +"[.filename]#PREFIX/INFO_PATH#. Например, пакет package:lang/gcc34[] " +"устанавливает файлы info в [.filename]#PREFIX/INFO_PATH/gcc34#, и `INFO` " +"будет выглядеть примерно так:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3888 +#, no-wrap +msgid "INFO=\tgcc34/cpp gcc34/cppinternals gcc34/g77 ...\n" +msgstr "INFO=\tgcc34/cpp gcc34/cppinternals gcc34/g77 ...\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3891 +msgid "" +"Appropriate installation/de-installation code will be automatically added to " +"the temporary [.filename]#pkg-plist# before package registration." +msgstr "" +"Соответствующий код установки/удаления будет автоматически добавлен во " +"временный файл [.filename]#pkg-plist# перед регистрацией пакета." + +#. type: Title == +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3893 +#, no-wrap +msgid "Makefile Options" +msgstr "Параметры Makefile" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3898 +msgid "" +"Many applications can be built with optional or differing configurations. " +"Examples include choice of natural (human) language, GUI versus command-" +"line, or type of database to support. Users may need a different " +"configuration than the default, so the ports system provides hooks the port " +"author can use to control which variant will be built. Supporting these " +"options properly will make users happy, and effectively provide two or more " +"ports for the price of one." +msgstr "" +"Многие приложения могут быть собраны с дополнительными или различными " +"конфигурациями. Примеры включают выбор естественного (человеческого) языка, " +"графический интерфейс или командная строка, тип поддерживаемой базы данных. " +"Пользователям может потребоваться конфигурация, отличная от стандартной, " +"поэтому система портов предоставляет хуки, которые автор порта может " +"использовать для управления вариантом сборки. Правильная поддержка этих " +"опций сделает пользователей счастливыми и эффективно предоставит два или " +"более порта по цене одного." + +#. type: Title === +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3900 +#, no-wrap +msgid "`OPTIONS`" +msgstr "`OPTIONS`" + +#. type: Title ==== +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3903 +#, no-wrap +msgid "Background" +msgstr "Пояснения" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3909 +msgid "" +"`OPTIONS_*` give the user installing the port a dialog showing the available " +"options, and then saves those options to [.filename]#${PORT_DBDIR}/$" +"{OPTIONS_NAME}/options#. The next time the port is built, the options are " +"reused. `PORT_DBDIR` defaults to [.filename]#/var/db/ports#. " +"`OPTIONS_NAME` is to the port origin with an underscore as the space " +"separator, for example, for package:dns/bind99[] it will be `dns_bind99`." +msgstr "" +"`OPTIONS_*` предоставляют пользователю, устанавливающему порт, диалоговое " +"окно с доступными опциями, после чего сохраняют выбранные опции в " +"[.filename]#${PORT_DBDIR}/${OPTIONS_NAME}/options#. При следующей сборке " +"порта эти опции будут использованы повторно. `PORT_DBDIR` по умолчанию имеет " +"значение [.filename]#/var/db/ports#. `OPTIONS_NAME` соответствует имени " +"порта (origin) с заменой разделителя на подчёркивания, например, для " +"package:dns/bind99[] это будет `dns_bind99`." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3913 +msgid "" +"When the user runs `make config` (or runs `make build` for the first time), " +"the framework checks for [.filename]#${PORT_DBDIR}/${OPTIONS_NAME}/" +"options#. If that file does not exist, the values of `OPTIONS_*` are used, " +"and a dialog box is displayed where the options can be enabled or disabled. " +"Then [.filename]#options# is saved and the configured variables are used " +"when building the port." +msgstr "" +"Когда пользователь запускает `make config` (или впервые запускает `make " +"build`), система проверяет наличие файла [.filename]#${PORT_DBDIR}/$" +"{OPTIONS_NAME}/options#. Если этот файл не существует, используются значения " +"`OPTIONS_*`, и отображается диалоговое окно, где можно включить или " +"отключить опции. Затем файл [.filename]#options# сохраняется, а настроенные " +"переменные используются при сборке порта." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3915 +msgid "" +"If a new version of the port adds new `OPTIONS`, the dialog will be " +"presented to the user with the saved values of old `OPTIONS` prefilled." +msgstr "" +"Если новая версия порта добавляет новые `OPTIONS`, пользователю будет " +"показан диалог с сохранёнными значениями старых `OPTIONS`, заполненными " +"заранее." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3918 +msgid "" +"`make showconfig` shows the saved configuration. Use `make rmconfig` to " +"remove the saved configuration." +msgstr "" +"`make showconfig` показывает сохранённую конфигурацию. Используйте `make " +"rmconfig` для удаления сохранённой конфигурации." + +#. type: Title ==== +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3920 +#, no-wrap +msgid "Syntax" +msgstr "Синтаксис" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3924 +msgid "" +"`OPTIONS_DEFINE` contains a list of `OPTIONS` to be used. These are " +"independent of each other and are not grouped:" +msgstr "" +"`OPTIONS_DEFINE` содержит список `OPTIONS`, которые будут использоваться. " +"Они независимы друг от друга и не сгруппированы:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3928 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4357 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4654 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4711 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4775 +#, no-wrap +msgid "OPTIONS_DEFINE=\tOPT1 OPT2\n" +msgstr "OPTIONS_DEFINE=\tOPT1 OPT2\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3931 +msgid "" +"Once defined, `OPTIONS` are described (optional, but strongly recommended):" +msgstr "" +"После определения `OPTIONS` описываются (необязательно, но настоятельно " +"рекомендуется):" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3940 +#, no-wrap +msgid "" +"OPT1_DESC=\tDescribe OPT1\n" +"OPT2_DESC=\tDescribe OPT2\n" +"OPT3_DESC=\tDescribe OPT3\n" +"OPT4_DESC=\tDescribe OPT4\n" +"OPT5_DESC=\tDescribe OPT5\n" +"OPT6_DESC=\tDescribe OPT6\n" +msgstr "" +"OPT1_DESC=\tDescribe OPT1\n" +"OPT2_DESC=\tDescribe OPT2\n" +"OPT3_DESC=\tDescribe OPT3\n" +"OPT4_DESC=\tDescribe OPT4\n" +"OPT5_DESC=\tDescribe OPT5\n" +"OPT6_DESC=\tDescribe OPT6\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3944 +msgid "" +"[.filename]#ports/Mk/bsd.options.desc.mk# has descriptions for many common " +"`OPTIONS`. While often useful, override them if the description is " +"insufficient for the port." +msgstr "" +"[.filename]#ports/Mk/bsd.options.desc.mk# содержит описания для многих " +"распространённых `OPTIONS`. Хотя они часто полезны, переопределите их, если " +"описание недостаточно для порта." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3950 +msgid "" +"When describing options, view it from the perspective of the user: \"What " +"functionality does it change?\" and \"Why would I want to enable this?\" Do " +"not just repeat the name. For example, describing the `NLS` option as " +"\"include NLS support\" does not help the user, who can already see the " +"option name but may not know what it means. Describing it as \"Native " +"Language Support via gettext utilities\" is much more helpful." +msgstr "" +"При описании параметров рассматривайте их с точки зрения пользователя: " +"«Какую функциональность это изменяет?» и «Зачем мне включать этот параметр?» " +"Не просто повторяйте название. Например, описание параметра `NLS` как " +"«включить поддержку NLS» не помогает пользователю, который уже видит " +"название параметра, но может не знать, что оно означает. Описание вроде " +"«Поддержка родного языка с помощью утилиты gettext» гораздо полезнее." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3956 +msgid "" +"Option names are always in all uppercase. They cannot use mixed case or " +"lowercase." +msgstr "" +"Названия параметров всегда пишутся в верхнем регистре. Они не могут " +"использовать смешанный регистр или нижний регистр." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3959 +msgid "" +"`OPTIONS` can be grouped as radio choices, where only one choice from each " +"group is allowed:" +msgstr "" +"`OPTIONS` могут быть сгруппированы как переключаемые варианты, где " +"допускается только один выбор из каждой группы:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3964 +#, no-wrap +msgid "" +"OPTIONS_SINGLE=\t\tSG1\n" +"OPTIONS_SINGLE_SG1=\tOPT3 OPT4\n" +msgstr "" +"OPTIONS_SINGLE=\t\tSG1\n" +"OPTIONS_SINGLE_SG1=\tOPT3 OPT4\n" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3970 +msgid "" +"There _must_ be one of each `OPTIONS_SINGLE` group selected at all times for " +"the options to be valid. One option of each group _must_ be added to " +"`OPTIONS_DEFAULT`." +msgstr "" +"В каждый момент времени _должна_ быть выбрана одна опция из каждой группы " +"`OPTIONS_SINGLE`, чтобы параметры были действительными. Один вариант из " +"каждой группы _должен_ быть добавлен в `OPTIONS_DEFAULT`." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3973 +msgid "" +"`OPTIONS` can be grouped as radio choices, where none or only one choice " +"from each group is allowed:" +msgstr "" +"`OPTIONS` могут быть сгруппированы как переключаемые варианты, где ни один " +"или только один вариант из каждой группы разрешён:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3978 +#, no-wrap +msgid "" +"OPTIONS_RADIO=\t\tRG1\n" +"OPTIONS_RADIO_RG1=\tOPT7 OPT8\n" +msgstr "" +"OPTIONS_RADIO=\t\tRG1\n" +"OPTIONS_RADIO_RG1=\tOPT7 OPT8\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3981 +msgid "" +"`OPTIONS` can also be grouped as \"multiple-choice\" lists, where _at least " +"one_ option must be enabled:" +msgstr "" +"`OPTIONS` также могут быть сгруппированы в виде списков \"множественного " +"выбора\", где _хотя бы одна_ опция должна быть включена:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3986 +#, no-wrap +msgid "" +"OPTIONS_MULTI=\t\tMG1\n" +"OPTIONS_MULTI_MG1=\tOPT5 OPT6\n" +msgstr "" +"OPTIONS_MULTI=\t\tMG1\n" +"OPTIONS_MULTI_MG1=\tOPT5 OPT6\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3989 +msgid "" +"`OPTIONS` can also be grouped as \"multiple-choice\" lists, where none or " +"any option can be enabled:" +msgstr "" +"`OPTIONS` также могут быть сгруппированы в виде списков \"множественного " +"выбора\", где ни одна или любые опции могут быть включены:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3994 +#, no-wrap +msgid "" +"OPTIONS_GROUP=\t\tGG1\n" +"OPTIONS_GROUP_GG1=\tOPT9 OPT10\n" +msgstr "" +"OPTIONS_GROUP=\t\tGG1\n" +"OPTIONS_GROUP_GG1=\tOPT9 OPT10\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3997 +msgid "" +"`OPTIONS` are unset by default, unless they are listed in `OPTIONS_DEFAULT`:" +msgstr "" +"`OPTIONS` по умолчанию не установлены, если они не перечислены в " +"`OPTIONS_DEFAULT`:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4001 +#, no-wrap +msgid "OPTIONS_DEFAULT=\tOPT1 OPT3 OPT6\n" +msgstr "OPTIONS_DEFAULT=\tOPT1 OPT3 OPT6\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4007 +msgid "" +"`OPTIONS` definitions must appear before the inclusion of " +"[.filename]#bsd.port.options.mk#. `PORT_OPTIONS` values can only be tested " +"after the inclusion of [.filename]#bsd.port.options.mk#. Inclusion of " +"[.filename]#bsd.port.pre.mk# can be used instead, too, and is still widely " +"used in ports written before the introduction of " +"[.filename]#bsd.port.options.mk#. But be aware that some variables will not " +"work as expected after the inclusion of [.filename]#bsd.port.pre.mk#, " +"typically some `USE_*` flags." +msgstr "" +"Определения `OPTIONS` должны быть указаны до включения файла " +"[.filename]#bsd.port.options.mk#. Значения `PORT_OPTIONS` можно проверять " +"только после включения [.filename]#bsd.port.options.mk#. Включение " +"[.filename]#bsd.port.pre.mk# также может использоваться и до сих пор широко " +"применяется в портах, написанных до введения " +"[.filename]#bsd.port.options.mk#. Однако следует учитывать, что некоторые " +"переменные не будут работать как ожидается после включения " +"[.filename]#bsd.port.pre.mk#, обычно это некоторые флаги `USE_*`." + +#. type: Block title +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4009 +#, no-wrap +msgid "Simple Use of `OPTIONS`" +msgstr "Простое использование `OPTIONS`" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4017 +#, no-wrap +msgid "" +"OPTIONS_DEFINE=\tFOO BAR\n" +"OPTIONS_DEFAULT=FOO\n" +msgstr "" +"OPTIONS_DEFINE=\tFOO BAR\n" +"OPTIONS_DEFAULT=FOO\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4020 +#, no-wrap +msgid "" +"FOO_DESC=\tOption foo support\n" +"BAR_DESC=\tFeature bar support\n" +msgstr "" +"FOO_DESC=\tOption foo support\n" +"BAR_DESC=\tFeature bar support\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4024 +#, no-wrap +msgid "" +"# Will add --with-foo / --without-foo\n" +"FOO_CONFIGURE_WITH=\tfoo\n" +"BAR_RUN_DEPENDS=\tbar:bar/bar\n" +msgstr "" +"# Will add --with-foo / --without-foo\n" +"FOO_CONFIGURE_WITH=\tfoo\n" +"BAR_RUN_DEPENDS=\tbar:bar/bar\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4026 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4090 +#, no-wrap +msgid ".include <bsd.port.mk>\n" +msgstr ".include <bsd.port.mk>\n" + +#. type: Block title +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4031 +#, no-wrap +msgid "Check for Unset Port `OPTIONS`" +msgstr "Проверка неустановленных `OPTIONS` порта" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4040 +#, no-wrap +msgid "" +".if ! ${PORT_OPTIONS:MEXAMPLES}\n" +"CONFIGURE_ARGS+=--without-examples\n" +".endif\n" +msgstr "" +".if ! ${PORT_OPTIONS:MEXAMPLES}\n" +"CONFIGURE_ARGS+=--without-examples\n" +".endif\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4044 +msgid "" +"The form shown above is discouraged. The preferred method is using a " +"configure knob to really enable and disable the feature to match the option:" +msgstr "" +"Приведённая выше форма не рекомендуется. Предпочтительный метод — " +"использование параметра configure для фактического включения и отключения " +"функции в соответствии с опцией:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4049 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4086 +#, no-wrap +msgid "" +"# Will add --with-examples / --without-examples\n" +"EXAMPLES_CONFIGURE_WITH=\texamples\n" +msgstr "" +"# Will add --with-examples / --without-examples\n" +"EXAMPLES_CONFIGURE_WITH=\texamples\n" + +#. type: Block title +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4054 +#, no-wrap +msgid "Practical Use of `OPTIONS`" +msgstr "Пример реального использования `OPTIONS`" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4062 +#, no-wrap +msgid "" +"OPTIONS_DEFINE=\t\tEXAMPLES\n" +"OPTIONS_DEFAULT=\tPGSQL LDAP SSL\n" +msgstr "" +"OPTIONS_DEFINE=\t\tEXAMPLES\n" +"OPTIONS_DEFAULT=\tPGSQL LDAP SSL\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4065 +#, no-wrap +msgid "" +"OPTIONS_SINGLE=\t\tBACKEND\n" +"OPTIONS_SINGLE_BACKEND=\tMYSQL PGSQL BDB\n" +msgstr "" +"OPTIONS_SINGLE=\t\tBACKEND\n" +"OPTIONS_SINGLE_BACKEND=\tMYSQL PGSQL BDB\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4068 +#, no-wrap +msgid "" +"OPTIONS_MULTI=\t\tAUTH\n" +"OPTIONS_MULTI_AUTH=\tLDAP PAM SSL\n" +msgstr "" +"OPTIONS_MULTI=\t\tAUTH\n" +"OPTIONS_MULTI_AUTH=\tLDAP PAM SSL\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4076 +#, no-wrap +msgid "" +"EXAMPLES_DESC=\t\tInstall extra examples\n" +"MYSQL_DESC=\t\tUse MySQL as backend\n" +"PGSQL_DESC=\t\tUse PostgreSQL as backend\n" +"BDB_DESC=\t\tUse Berkeley DB as backend\n" +"LDAP_DESC=\t\tBuild with LDAP authentication support\n" +"PAM_DESC=\t\tBuild with PAM support\n" +"SSL_DESC=\t\tBuild with OpenSSL support\n" +msgstr "" +"EXAMPLES_DESC=\t\tInstall extra examples\n" +"MYSQL_DESC=\t\tUse MySQL as backend\n" +"PGSQL_DESC=\t\tUse PostgreSQL as backend\n" +"BDB_DESC=\t\tUse Berkeley DB as backend\n" +"LDAP_DESC=\t\tBuild with LDAP authentication support\n" +"PAM_DESC=\t\tBuild with PAM support\n" +"SSL_DESC=\t\tBuild with OpenSSL support\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4081 +#, no-wrap +msgid "" +"# Will add USE_PGSQL=yes\n" +"PGSQL_USE=\tpgsql=yes\n" +"# Will add --enable-postgres / --disable-postgres\n" +"PGSQL_CONFIGURE_ENABLE=\tpostgres\n" +msgstr "" +"# Will add USE_PGSQL=yes\n" +"PGSQL_USE=\tpgsql=yes\n" +"# Will add --enable-postgres / --disable-postgres\n" +"PGSQL_CONFIGURE_ENABLE=\tpostgres\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4083 +#, no-wrap +msgid "ICU_LIB_DEPENDS=\tlibicuuc.so:devel/icu\n" +msgstr "ICU_LIB_DEPENDS=\tlibicuuc.so:devel/icu\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4088 +#, no-wrap +msgid "# Check other OPTIONS\n" +msgstr "# Check other OPTIONS\n" + +#. type: Title ==== +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4095 +#, no-wrap +msgid "Default Options" +msgstr "Опции по умолчанию" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4098 +msgid "These options are always on by default." +msgstr "Эти опции всегда включены по умолчанию." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4100 +msgid "`DOCS` - build and install documentation." +msgstr "`DOCS` — сборка и установка документации." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4101 +msgid "`NLS` - Native Language Support." +msgstr "`NLS` — Поддержка родного языка." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4102 +msgid "`EXAMPLES` - build and install examples." +msgstr "`EXAMPLES` — сборка и установка примеров." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4103 +msgid "`IPV6` - IPv6 protocol support." +msgstr "`IPV6` — Поддержка протокола IPv6." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4108 +msgid "" +"There is no need to add these to `OPTIONS_DEFAULT`. To have them active, " +"and show up in the options selection dialog, however, they must be added to " +"`OPTIONS_DEFINE`." +msgstr "" +"Нет необходимости добавлять их в `OPTIONS_DEFAULT`. Однако, чтобы они были " +"активны и отображались в диалоге выбора опций, их необходимо добавить в " +"`OPTIONS_DEFINE`." + +#. type: Title === +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4111 +#, no-wrap +msgid "Feature Auto-Activation" +msgstr "Автоматическая активация функций" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4115 +msgid "" +"When using a GNU configure script, keep an eye on which optional features " +"are activated by auto-detection. Explicitly disable optional features that " +"are not needed by adding `--without-xxx` or `--disable-xxx` in " +"`CONFIGURE_ARGS`." +msgstr "" +"При использовании скрипта GNU configure следите за тем, какие дополнительные " +"функции активируются автоматическим определением. Явно отключите ненужные " +"дополнительные функции, добавив `--without-xxx` или `--disable-xxx` в " +"`CONFIGURE_ARGS`." + +#. type: Block title +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4117 +#, no-wrap +msgid "Wrong Handling of an Option" +msgstr "Неправильная обработка опции" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4127 +#, no-wrap +msgid "" +".if ${PORT_OPTIONS:MFOO}\n" +"LIB_DEPENDS+=\t\tlibfoo.so:devel/foo\n" +"CONFIGURE_ARGS+=\t--enable-foo\n" +".endif\n" +msgstr "" +".if ${PORT_OPTIONS:MFOO}\n" +"LIB_DEPENDS+=\t\tlibfoo.so:devel/foo\n" +"CONFIGURE_ARGS+=\t--enable-foo\n" +".endif\n" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4135 +msgid "" +"In the example above, imagine a library libfoo is installed on the system. " +"The user does not want this application to use libfoo, so he toggled the " +"option off in the `make config` dialog. But the application's configure " +"script detects the library present in the system and includes its support in " +"the resulting executable. Now when the user decides to remove libfoo from " +"the system, the ports system does not protest (no dependency on libfoo was " +"recorded) but the application breaks." +msgstr "" +"В приведённом выше примере представьте, что библиотека libfoo установлена в " +"системе. Пользователь не хочет, чтобы это приложение использовало libfoo, " +"поэтому он отключил соответствующую опцию в диалоге `make config`. Однако " +"скрипт configure приложения обнаруживает библиотеку в системе и включает её " +"поддержку в итоговом исполняемом файле. Теперь, когда пользователь решает " +"удалить libfoo из системы, система портов не протестует (зависимость от " +"libfoo не была записана), но приложение перестаёт работать." + +#. type: Block title +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4137 +#, no-wrap +msgid "Correct Handling of an Option" +msgstr "Правильная обработка опции" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4146 +#, no-wrap +msgid "" +"FOO_LIB_DEPENDS=\t\tlibfoo.so:devel/foo\n" +"# Will add --enable-foo / --disable-foo\n" +"FOO_CONFIGURE_ENABLE=\tfoo\n" +msgstr "" +"FOO_LIB_DEPENDS=\t\tlibfoo.so:devel/foo\n" +"# Will add --enable-foo / --disable-foo\n" +"FOO_CONFIGURE_ENABLE=\tfoo\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4154 +msgid "" +"Under some circumstances, the shorthand conditional syntax can cause " +"problems with complex constructs. The errors are usually `Malformed " +"conditional`, an alternative syntax can be used." +msgstr "" +"В некоторых случаях сокращенный синтаксис условных выражений может вызывать " +"проблемы со сложными конструкциями. Ошибки обычно имеют вид `Malformed " +"conditional`, тогда можно использовать альтернативный синтаксис." + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4158 +#, no-wrap +msgid ".if !empty(VARIABLE:MVALUE)\n" +msgstr ".if !empty(VARIABLE:MVALUE)\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4161 +msgid "as an alternative to" +msgstr "в качестве альтернативы" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4165 +#, no-wrap +msgid ".if ${VARIABLE:MVALUE}\n" +msgstr ".if ${VARIABLE:MVALUE}\n" + +#. type: Title === +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4170 +#, no-wrap +msgid "Options Helpers" +msgstr "Помощники параметров" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4174 +msgid "" +"There are some macros to help simplify conditional values which differ based " +"on the options set. For easier access, a comprehensive list is provided:" +msgstr "" +"Существуют макросы, которые помогают упростить условные значения, " +"различающиеся в зависимости от установленных опций. Для удобства приведён " +"полный список:" + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4175 +#, no-wrap +msgid "`PLIST_SUB`, `SUB_LIST`" +msgstr "`PLIST_SUB`, `SUB_LIST`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4177 +msgid "" +"For automatic `%%_OPT_%%` and `%%NO__OPT__%%` generation, see " +"crossref:makefiles[options_sub, `OPTIONS_SUB`]." +msgstr "" +"Для автоматической генерации `%%_OPT_%%` и `%%NO__OPT__%%` см. " +"crossref:makefiles[options_sub, `OPTIONS_SUB`]." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4179 +msgid "" +"For more complex usage, see crossref:makefiles[options-variables, Generic " +"Variables Replacement, `OPT_VARIABLE` and `OPT_VARIABLE_OFF`]." +msgstr "" +"Для более сложных случаев использования см. crossref:makefiles[options-" +"variables, Замена общих переменных, `OPT_VARIABLE` и `OPT_VARIABLE_OFF`]." + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4180 +#, no-wrap +msgid "`CONFIGURE_ARGS`" +msgstr "`CONFIGURE_ARGS`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4182 +msgid "" +"For `--enable-_x_` and `--disable-_x_`, see crossref:makefiles[options-" +"configure_enable, `OPT_CONFIGURE_ENABLE`]." +msgstr "" +"Для информации о `--enable-_x_` и `--disable-_x_` см. " +"crossref:makefiles[options-configure_enable, `OPT_CONFIGURE_ENABLE`]." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4184 +msgid "" +"For `--with-_x_` and `--without-_x_`, see crossref:makefiles[options-" +"configure_with, `OPT_CONFIGURE_WITH`]." +msgstr "" +"О `--with-_x_` и `--without-_x_` см. crossref:makefiles[options-" +"configure_with, `OPT_CONFIGURE_WITH`]." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4186 +msgid "" +"For all other cases, see crossref:makefiles[options-configure_on, " +"`OPT_CONFIGURE_ON` and `OPT_CONFIGURE_OFF`]." +msgstr "" +"Во всех остальных случаях см. crossref:makefiles[options-configure_on, " +"`OPT_CONFIGURE_ON` и `OPT_CONFIGURE_OFF`]." + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4187 +#, no-wrap +msgid "`CMAKE_ARGS`" +msgstr "`CMAKE_ARGS`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4190 +msgid "" +"For arguments that are booleans (`on`, `off`, `true`, `false`, `0`, `1`) see " +"crossref:makefiles[options-cmake_bool, `OPT_CMAKE_BOOL` and " +"`OPT_CMAKE_BOOL_OFF`]." +msgstr "" +"Для аргументов, которые являются булевыми значениями (`on`, `off`, `true`, " +"`false`, `0`, `1`), см. crossref:makefiles[options-cmake_bool, " +"`OPT_CMAKE_BOOL` и `OPT_CMAKE_BOOL_OFF`]." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4192 +msgid "" +"For all other cases, see crossref:makefiles[options-cmake_on, `OPT_CMAKE_ON` " +"and `OPT_CMAKE_OFF`]." +msgstr "" +"Для всех остальных случаев см. crossref:makefiles[options-cmake_on, " +"`OPT_CMAKE_ON` и `OPT_CMAKE_OFF`]." + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4193 +#, no-wrap +msgid "`MESON_ARGS`" +msgstr "`MESON_ARGS`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4195 +msgid "" +"For arguments that take `true` or `false`, see crossref:makefiles[options-" +"meson_true, `OPT_MESON_TRUE` and `OPT_MESON_FALSE`]." +msgstr "" +"Для аргументов, принимающих `true` или `false`, см. " +"crossref:makefiles[options-meson_true, `OPT_MESON_TRUE` и `OPT_MESON_FALSE`]." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4197 +msgid "" +"For arguments that take `yes` or `no`, use crossref:makefiles[options-" +"meson_yes, `OPT_MESON_YES` and `OPT_MESON_NO`]." +msgstr "" +"Для аргументов, принимающих `yes` или `no`, используйте " +"crossref:makefiles[options-meson_yes, `OPT_MESON_YES` и `OPT_MESON_NO`]." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4199 +msgid "" +"For arguments that take `enabled` or `disabled`, see " +"crossref:makefiles[options-meson_enabled, `OPT_MESON_ENABLED` and " +"`OPT_MESON_DISABLED`]." +msgstr "" +"Для аргументов, принимающих `enabled` или `disabled`, см. " +"crossref:makefiles[options-meson_enabled, `OPT_MESON_ENABLED` и " +"`OPT_MESON_DISABLED`]." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4201 +msgid "" +"For all other cases, use crossref:makefiles[options-meson_on, `OPT_MESON_ON` " +"and `OPT_MESON_OFF`]." +msgstr "" +"Во всех остальных случаях используйте crossref:makefiles[options-meson_on, " +"`OPT_MESON_ON` и `OPT_MESON_OFF`]." + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4202 +#, no-wrap +msgid "`QMAKE_ARGS`" +msgstr "`QMAKE_ARGS`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4204 +msgid "" +"See crossref:makefiles[options-qmake_on, `OPT_QMAKE_ON` and `OPT_QMAKE_OFF`]." +msgstr "" +"См. crossref:makefiles[options-qmake_on, `OPT_QMAKE_ON` и `OPT_QMAKE_OFF`]." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4207 +msgid "See crossref:makefiles[options-use, `OPT_USE` and `OPT_USE_OFF`]." +msgstr "См. crossref:makefiles[options-use, `OPT_USE` и `OPT_USE_OFF`]." + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4208 +#, no-wrap +msgid "`*_DEPENDS`" +msgstr "`*_DEPENDS`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4210 +msgid "" +"See crossref:makefiles[options-dependencies, Dependencies, `OPT_DEPTYPE` and " +"`OPT_DEPTYPE_OFF`]." +msgstr "" +"См. crossref:makefiles[options-dependencies, Зависимости, `OPT_DEPTYPE` и " +"`OPT_DEPTYPE_OFF`]." + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4211 +#, no-wrap +msgid "`*` (Any variable)" +msgstr "`*` (Любая переменная)" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4214 +msgid "" +"The most used variables have direct helpers, see crossref:makefiles[options-" +"variables, Generic Variables Replacement, `OPT_VARIABLE` and " +"`OPT_VARIABLE_OFF`]." +msgstr "" +"Наиболее используемые переменные имеют своих помощников, см. " +"crossref:makefiles[options-variables, Замена Общих Переменных, " +"`OPT_VARIABLE` и `OPT_VARIABLE_OFF`]." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4216 +msgid "" +"For any variable without a specific helper, see crossref:makefiles[options-" +"vars, `OPT_VARS` and `OPT_VARS_OFF`]." +msgstr "" +"Для любой переменной без специального помощника см. " +"crossref:makefiles[options-vars, `OPT_VARS` и `OPT_VARS_OFF`]." + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4217 +#, no-wrap +msgid "Options dependencies" +msgstr "Зависимости параметров" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4220 +msgid "" +"When an option need another option to work, see crossref:makefiles[options-" +"implies, `OPT_IMPLIES`]." +msgstr "" +"Когда для работы опции требуется другая опция, см. " +"crossref:makefiles[options-implies, `OPT_IMPLIES`]." + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4221 +#, no-wrap +msgid "Options conflicts" +msgstr "Конфликты опций" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4224 +msgid "" +"When an option cannot work if another is also enabled, see " +"crossref:makefiles[options-prevents, `OPT_PREVENTS` and `OPT_PREVENTS_MSG`]." +msgstr "" +"Когда опция не может работать, если включена другая, см. " +"crossref:makefiles[options-prevents, `OPT_PREVENTS` и `OPT_PREVENTS_MSG`]." + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4225 +#, no-wrap +msgid "Build targets" +msgstr "Цели сборки" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4228 +msgid "" +"When an option need some extra processing, see crossref:makefiles[options-" +"targets, Additional Build Targets, `_target_-_OPT_-on` and `_target_-_OPT_-" +"off`]." +msgstr "" +"Когда для опции требуется дополнительная обработка, см. " +"crossref:makefiles[options-targets, Дополнительные цели сборки, `_target_-" +"_OPT_-on` и `_target_-_OPT_-off`]." + +#. type: Title ==== +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4230 +#, no-wrap +msgid "`OPTIONS_SUB`" +msgstr "`OPTIONS_SUB`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4233 +msgid "" +"If `OPTIONS_SUB` is set to `yes` then each of the options added to " +"`OPTIONS_DEFINE` will be added to `PLIST_SUB` and `SUB_LIST`, for example:" +msgstr "" +"Если `OPTIONS_SUB` установлен в `yes`, то каждая из опций, добавленных в " +"`OPTIONS_DEFINE`, будет добавлена в `PLIST_SUB` и `SUB_LIST`, например:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4238 +#, no-wrap +msgid "" +"OPTIONS_DEFINE=\tOPT1\n" +"OPTIONS_SUB=\tyes\n" +msgstr "" +"OPTIONS_DEFINE=\tOPT1\n" +"OPTIONS_SUB=\tyes\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4241 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4280 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4316 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4353 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4388 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4425 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4461 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4495 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4525 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4557 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4589 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4618 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4771 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4844 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4921 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:5011 +msgid "is equivalent to:" +msgstr "эквивалентно:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4245 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4284 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4320 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4392 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4429 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4465 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4499 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4529 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4561 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4593 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4622 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4848 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4925 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:5002 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:5015 +#, no-wrap +msgid "OPTIONS_DEFINE=\tOPT1\n" +msgstr "OPTIONS_DEFINE=\tOPT1\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4247 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4286 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4322 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4359 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4394 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4431 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4467 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4501 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4531 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4563 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4595 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4624 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4656 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4713 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4779 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4850 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4927 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:5017 +#, 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/makefiles/_index.adoc:4255 +#, no-wrap +msgid "" +".if ${PORT_OPTIONS:MOPT1}\n" +"PLIST_SUB+=\tOPT1=\"\" NO_OPT1=\"@comment \"\n" +"SUB_LIST+=\tOPT1=\"\" NO_OPT1=\"@comment \"\n" +".else\n" +"PLIST_SUB+=\tOPT1=\"@comment \" NO_OPT1=\"\"\n" +"SUB_LIST+=\tOPT1=\"@comment \" NO_OPT1=\"\"\n" +".endif\n" +msgstr "" +".if ${PORT_OPTIONS:MOPT1}\n" +"PLIST_SUB+=\tOPT1=\"\" NO_OPT1=\"@comment \"\n" +"SUB_LIST+=\tOPT1=\"\" NO_OPT1=\"@comment \"\n" +".else\n" +"PLIST_SUB+=\tOPT1=\"@comment \" NO_OPT1=\"\"\n" +"SUB_LIST+=\tOPT1=\"@comment \" NO_OPT1=\"\"\n" +".endif\n" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4261 +msgid "" +"The value of `OPTIONS_SUB` is ignored. Setting it to any value will add " +"`PLIST_SUB` and `SUB_LIST` entries for _all_ options." +msgstr "" +"Значение `OPTIONS_SUB` игнорируется. Установка любого значения добавит " +"записи `PLIST_SUB` и `SUB_LIST` для _всех_ опций." + +#. type: Title ==== +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4264 +#, no-wrap +msgid "`OPT_USE` and `OPT_USE_OFF`" +msgstr "`OPT_USE` и `OPT_USE_OFF`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4270 +msgid "" +"When option _OPT_ is selected, for each `_key=value_` pair in ``OPT_USE``, " +"_value_ is appended to the corresponding `USE_KEY`. If _value_ has spaces " +"in it, replace them with commas and they will be changed back to spaces " +"during processing. `OPT_USE_OFF` works the same way, but when `OPT` is " +"_not_ selected. For example:" +msgstr "" +"Когда выбрана опция _OPT_, для каждой пары `_ключ=значение_` в ``OPT_USE``, " +"_значение_ добавляется к соответствующему `USE_KEY`. Если _значение_ " +"содержит пробелы, замените их запятыми, и они будут преобразованы обратно в " +"пробелы во время обработки. `OPT_USE_OFF` работает аналогично, но когда " +"`OPT` _не_ выбрана. Например:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4277 +#, no-wrap +msgid "" +"OPTIONS_DEFINE=\tOPT1\n" +"OPT1_USES=\txorg\n" +"OPT1_USE=\tmysql=yes xorg=x11,xextproto,xext,xrandr\n" +"OPT1_USE_OFF=\topenssl=yes\n" +msgstr "" +"OPTIONS_DEFINE=\tOPT1\n" +"OPT1_USES=\txorg\n" +"OPT1_USE=\tmysql=yes xorg=x11,xextproto,xext,xrandr\n" +"OPT1_USE_OFF=\topenssl=yes\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4294 +#, no-wrap +msgid "" +".if ${PORT_OPTIONS:MOPT1}\n" +"USE_MYSQL=\tyes\n" +"USES+=\t\txorg\n" +"USE_XORG=\tx11 xextproto xext xrandr\n" +".else\n" +"USE_OPENSSL=\tyes\n" +".endif\n" +msgstr "" +".if ${PORT_OPTIONS:MOPT1}\n" +"USE_MYSQL=\tyes\n" +"USES+=\t\txorg\n" +"USE_XORG=\tx11 xextproto xext xrandr\n" +".else\n" +"USE_OPENSSL=\tyes\n" +".endif\n" + +#. type: Title ==== +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4297 +#, no-wrap +msgid "`CONFIGURE_ARGS` Helpers" +msgstr "Помощники `CONFIGURE_ARGS`" + +#. type: Title ===== +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4300 +#, no-wrap +msgid "`OPT_CONFIGURE_ENABLE`" +msgstr "`OPT_CONFIGURE_ENABLE`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4307 +msgid "" +"When option _OPT_ is selected, for each _entry_ in `OPT_CONFIGURE_ENABLE` " +"then `--enable-_entry_` is appended to `CONFIGURE_ARGS`. When option _OPT_ " +"is _not_ selected, `--disable-_entry_` is appended to `CONFIGURE_ARGS`. An " +"optional argument can be specified with an `=` symbol. This argument is " +"only appended to the `--enable-_entry_` configure option. For example:" +msgstr "" +"Когда выбрана опция _OPT_, для каждого _элемента_ в `OPT_CONFIGURE_ENABLE` к " +"`CONFIGURE_ARGS` добавляется `--enable-_элемент_`. Если опция _OPT_ _не_ " +"выбрана, к `CONFIGURE_ARGS` добавляется `--disable-_элемент_`. " +"Необязательный аргумент может быть указан с помощью символа `=`. Этот " +"аргумент добавляется только к опции конфигурации `--enable-_элемент_`. " +"Например:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4313 +#, no-wrap +msgid "" +"OPTIONS_DEFINE=\tOPT1 OPT2\n" +"OPT1_CONFIGURE_ENABLE=\ttest1 test2\n" +"OPT2_CONFIGURE_ENABLE=\ttest2=exhaustive\n" +msgstr "" +"OPTIONS_DEFINE=\tOPT1 OPT2\n" +"OPT1_CONFIGURE_ENABLE=\ttest1 test2\n" +"OPT2_CONFIGURE_ENABLE=\ttest2=exhaustive\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4328 +#, no-wrap +msgid "" +".if ${PORT_OPTIONS:MOPT1}\n" +"CONFIGURE_ARGS+=\t--enable-test1 --enable-test2\n" +".else\n" +"CONFIGURE_ARGS+=\t--disable-test1 --disable-test2\n" +".endif\n" +msgstr "" +".if ${PORT_OPTIONS:MOPT1}\n" +"CONFIGURE_ARGS+=\t--enable-test1 --enable-test2\n" +".else\n" +"CONFIGURE_ARGS+=\t--disable-test1 --disable-test2\n" +".endif\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4334 +#, no-wrap +msgid "" +".if ${PORT_OPTIONS:MOPT2}\n" +"CONFIGURE_ARGS+=\t--enable-test2=exhaustive\n" +".else\n" +"CONFIGURE_ARGS+=\t--disable-test2\n" +".endif\n" +msgstr "" +".if ${PORT_OPTIONS:MOPT2}\n" +"CONFIGURE_ARGS+=\t--enable-test2=exhaustive\n" +".else\n" +"CONFIGURE_ARGS+=\t--disable-test2\n" +".endif\n" + +#. type: Title ===== +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4337 +#, no-wrap +msgid "`OPT_CONFIGURE_WITH`" +msgstr "`OPT_CONFIGURE_WITH`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4344 +msgid "" +"When option _OPT_ is selected, for each _entry_ in `_OPT_CONFIGURE_WITH` " +"then `--with-_entry_` is appended to `CONFIGURE_ARGS`. When option _OPT_ is " +"_not_ selected, `--without-_entry_` is appended to `CONFIGURE_ARGS`. An " +"optional argument can be specified with an `=` symbol. This argument is " +"only appended to the `--with-_entry_` configure option. For example:" +msgstr "" +"Когда выбрана опция _OPT_, для каждого _элемента_ в `_OPT_CONFIGURE_WITH` к " +"`CONFIGURE_ARGS` добавляется `--with-_элемент_`. Если опция _OPT_ _не_ " +"выбрана, к `CONFIGURE_ARGS` добавляется `--without-_элемент_`. " +"Необязательный аргумент можно указать с помощью символа `=`. Этот аргумент " +"добавляется только к опции конфигурации `--with-_элемент_`. Например:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4350 +#, no-wrap +msgid "" +"OPTIONS_DEFINE=\tOPT1 OPT2\n" +"OPT1_CONFIGURE_WITH=\ttest1\n" +"OPT2_CONFIGURE_WITH=\ttest2=exhaustive\n" +msgstr "" +"OPTIONS_DEFINE=\tOPT1 OPT2\n" +"OPT1_CONFIGURE_WITH=\ttest1\n" +"OPT2_CONFIGURE_WITH=\ttest2=exhaustive\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4365 +#, no-wrap +msgid "" +".if ${PORT_OPTIONS:MOPT1}\n" +"CONFIGURE_ARGS+=\t--with-test1\n" +".else\n" +"CONFIGURE_ARGS+=\t--without-test1\n" +".endif\n" +msgstr "" +".if ${PORT_OPTIONS:MOPT1}\n" +"CONFIGURE_ARGS+=\t--with-test1\n" +".else\n" +"CONFIGURE_ARGS+=\t--without-test1\n" +".endif\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4371 +#, no-wrap +msgid "" +".if ${PORT_OPTIONS:MOPT2}\n" +"CONFIGURE_ARGS+=\t--with-test2=exhaustive\n" +".else\n" +"CONFIGURE_ARGS+=\t--without-test2\n" +".endif\n" +msgstr "" +".if ${PORT_OPTIONS:MOPT2}\n" +"CONFIGURE_ARGS+=\t--with-test2=exhaustive\n" +".else\n" +"CONFIGURE_ARGS+=\t--without-test2\n" +".endif\n" + +#. type: Title ===== +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4374 +#, no-wrap +msgid "`OPT_CONFIGURE_ON` and `OPT_CONFIGURE_OFF`" +msgstr "`OPT_CONFIGURE_ON` и `OPT_CONFIGURE_OFF`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4379 +msgid "" +"When option _OPT_ is selected, the value of `OPT_CONFIGURE_ON`, if defined, " +"is appended to `CONFIGURE_ARGS`. `OPT_CONFIGURE_OFF` works the same way, " +"but when `OPT` is _not_ selected. For example:" +msgstr "" +"Когда выбрана опция _OPT_, значение `OPT_CONFIGURE_ON`, если оно определено, " +"добавляется к `CONFIGURE_ARGS`. `OPT_CONFIGURE_OFF` работает аналогично, но " +"когда `OPT` _не_ выбрана. Например:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4385 +#, no-wrap +msgid "" +"OPTIONS_DEFINE=\tOPT1\n" +"OPT1_CONFIGURE_ON=\t--add-test\n" +"OPT1_CONFIGURE_OFF=\t--no-test\n" +msgstr "" +"OPTIONS_DEFINE=\tOPT1\n" +"OPT1_CONFIGURE_ON=\t--add-test\n" +"OPT1_CONFIGURE_OFF=\t--no-test\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4400 +#, no-wrap +msgid "" +".if ${PORT_OPTIONS:MOPT1}\n" +"CONFIGURE_ARGS+=\t--add-test\n" +".else\n" +"CONFIGURE_ARGS+=\t--no-test\n" +".endif\n" +msgstr "" +".if ${PORT_OPTIONS:MOPT1}\n" +"CONFIGURE_ARGS+=\t--add-test\n" +".else\n" +"CONFIGURE_ARGS+=\t--no-test\n" +".endif\n" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4406 +msgid "" +"Most of the time, the helpers in crossref:makefiles[options-" +"configure_enable, `OPT_CONFIGURE_ENABLE`] and crossref:makefiles[options-" +"configure_with, `OPT_CONFIGURE_WITH`] provide a shorter and more " +"comprehensive functionality." +msgstr "" +"В большинстве случаев помощники crossref:makefiles[options-configure_enable, " +"`OPT_CONFIGURE_ENABLE`] и crossref:makefiles[options-configure_with, " +"`OPT_CONFIGURE_WITH`] предоставляют более короткий и понятный функционал." + +#. type: Title ==== +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4409 +#, no-wrap +msgid "`CMAKE_ARGS` Helpers" +msgstr "Помощники `CMAKE_ARGS`" + +#. type: Title ===== +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4412 +#, no-wrap +msgid "`OPT_CMAKE_ON` and `OPT_CMAKE_OFF`" +msgstr "`OPT_CMAKE_ON` и `OPT_CMAKE_OFF`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4416 +msgid "" +"When option _OPT_ is selected, the value of `OPT_CMAKE_ON`, if defined, is " +"appended to `CMAKE_ARGS`. `OPT_CMAKE_OFF` works the same way, but when `OPT` " +"is _not_ selected. For example:" +msgstr "" +"Когда выбрана опция _OPT_, значение `OPT_CMAKE_ON`, если оно определено, " +"добавляется к `CMAKE_ARGS`. `OPT_CMAKE_OFF` работает аналогично, но когда " +"`OPT` _не_ выбрана. Например:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4422 +#, no-wrap +msgid "" +"OPTIONS_DEFINE=\tOPT1\n" +"OPT1_CMAKE_ON=\t-DTEST:BOOL=true -DDEBUG:BOOL=true\n" +"OPT1_CMAKE_OFF=\t-DOPTIMIZE:BOOL=true\n" +msgstr "" +"OPTIONS_DEFINE=\tOPT1\n" +"OPT1_CMAKE_ON=\t-DTEST:BOOL=true -DDEBUG:BOOL=true\n" +"OPT1_CMAKE_OFF=\t-DOPTIMIZE:BOOL=true\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4437 +#, no-wrap +msgid "" +".if ${PORT_OPTIONS:MOPT1}\n" +"CMAKE_ARGS+=\t-DTEST:BOOL=true -DDEBUG:BOOL=true\n" +".else\n" +"CMAKE_ARGS+=\t-DOPTIMIZE:BOOL=true\n" +".endif\n" +msgstr "" +".if ${PORT_OPTIONS:MOPT1}\n" +"CMAKE_ARGS+=\t-DTEST:BOOL=true -DDEBUG:BOOL=true\n" +".else\n" +"CMAKE_ARGS+=\t-DOPTIMIZE:BOOL=true\n" +".endif\n" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4443 +msgid "" +"See crossref:makefiles[options-cmake_bool, `OPT_CMAKE_BOOL` and " +"`OPT_CMAKE_BOOL_OFF`] for a shorter helper when the value is boolean." +msgstr "" +"См. crossref:makefiles[options-cmake_bool, `OPT_CMAKE_BOOL` и " +"`OPT_CMAKE_BOOL_OFF`] для более краткой записи, когда значение является " +"булевым." + +#. type: Title ===== +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4446 +#, no-wrap +msgid "`OPT_CMAKE_BOOL` and `OPT_CMAKE_BOOL_OFF`" +msgstr "`OPT_CMAKE_BOOL` и `OPT_CMAKE_BOOL_OFF`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4452 +msgid "" +"When option _OPT_ is selected, for each _entry_ in `OPT_CMAKE_BOOL` then `-" +"D_entry_:BOOL=true` is appended to `CMAKE_ARGS`. When option _OPT_ is _not_ " +"selected, `-D_entry_:BOOL=false` is appended to `CONFIGURE_ARGS`. " +"`OPT_CMAKE_BOOL_OFF` is the opposite, `-D_entry_:BOOL=false` is appended to " +"`CMAKE_ARGS` when the option is selected, and `-D_entry_:BOOL=true` when the " +"option is _not_ selected. For example:" +msgstr "" +"Когда выбрана опция _OPT_, для каждого _элемента_ в `OPT_CMAKE_BOOL` " +"добавляется `-D_элемент_:BOOL=true` к `CMAKE_ARGS`. Если опция _OPT_ _не_ " +"выбрана, `-D_элемент_:BOOL=false` добавляется к `CONFIGURE_ARGS`. " +"`OPT_CMAKE_BOOL_OFF` работает наоборот: `-D_элемент_:BOOL=false` добавляется " +"к `CMAKE_ARGS`, когда опция выбрана, и `-D_элемент_:BOOL=true`, когда опция " +"_не_ выбрана. Например:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4458 +#, no-wrap +msgid "" +"OPTIONS_DEFINE=\tOPT1\n" +"OPT1_CMAKE_BOOL=\tTEST DEBUG\n" +"OPT1_CMAKE_BOOL_OFF=\tOPTIMIZE\n" +msgstr "" +"OPTIONS_DEFINE=\tOPT1\n" +"OPT1_CMAKE_BOOL=\tTEST DEBUG\n" +"OPT1_CMAKE_BOOL_OFF=\tOPTIMIZE\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4475 +#, no-wrap +msgid "" +".if ${PORT_OPTIONS:MOPT1}\n" +"CMAKE_ARGS+=\t-DTEST:BOOL=true -DDEBUG:BOOL=true \\\n" +"\t\t-DOPTIMIZE:BOOL=false\n" +".else\n" +"CMAKE_ARGS+=\t-DTEST:BOOL=false -DDEBUG:BOOL=false \\\n" +"\t\t-DOPTIMIZE:BOOL=true\n" +".endif\n" +msgstr "" +".if ${PORT_OPTIONS:MOPT1}\n" +"CMAKE_ARGS+=\t-DTEST:BOOL=true -DDEBUG:BOOL=true \\\n" +"\t\t-DOPTIMIZE:BOOL=false\n" +".else\n" +"CMAKE_ARGS+=\t-DTEST:BOOL=false -DDEBUG:BOOL=false \\\n" +"\t\t-DOPTIMIZE:BOOL=true\n" +".endif\n" + +#. type: Title ==== +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4478 +#, no-wrap +msgid "`MESON_ARGS` Helpers" +msgstr "Помощники `MESON_ARGS`" + +#. type: Title ===== +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4481 +#, no-wrap +msgid "`OPT_MESON_ON` and `OPT_MESON_OFF`" +msgstr "`OPT_MESON_ON` и `OPT_MESON_OFF`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4486 +msgid "" +"When option _OPT_ is selected, the value of `OPT_MESON_ON`, if defined, is " +"appended to `MESON_ARGS`. `OPT_MESON_OFF` works the same way, but when " +"`OPT` is _not_ selected. For example:" +msgstr "" +"Когда выбрана опция _OPT_, значение `OPT_MESON_ON`, если оно определено, " +"добавляется к `MESON_ARGS`. `OPT_MESON_OFF` работает аналогичным образом, " +"но когда `OPT` _не_ выбрана. Например:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4492 +#, no-wrap +msgid "" +"OPTIONS_DEFINE=\tOPT1\n" +"OPT1_MESON_ON=\t-Dopt=1\n" +"OPT1_MESON_OFF=\t-Dopt=2\n" +msgstr "" +"OPTIONS_DEFINE=\tOPT1\n" +"OPT1_MESON_ON=\t-Dopt=1\n" +"OPT1_MESON_OFF=\t-Dopt=2\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4507 +#, no-wrap +msgid "" +".if ${PORT_OPTIONS:MOPT1}\n" +"MESON_ARGS+=\t-Dopt=1\n" +".else\n" +"MESON_ARGS+=\t-Dopt=2\n" +".endif\n" +msgstr "" +".if ${PORT_OPTIONS:MOPT1}\n" +"MESON_ARGS+=\t-Dopt=1\n" +".else\n" +"MESON_ARGS+=\t-Dopt=2\n" +".endif\n" + +#. type: Title ===== +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4510 +#, no-wrap +msgid "`OPT_MESON_TRUE` and `OPT_MESON_FALSE`" +msgstr "`OPT_MESON_TRUE` и `OPT_MESON_FALSE`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4516 +msgid "" +"When option _OPT_ is selected, for each _entry_ in `OPT_MESON_TRUE` then `-" +"D_entry_=true` is appended to `MESON_ARGS`. When option _OPT_ is _not_ " +"selected, `-D_entry_=false` is appended to `MESON_ARGS`. `OPT_MESON_FALSE` " +"is the opposite, `-D_entry_=false` is appended to `MESON_ARGS` when the " +"option is selected, and `-D_entry_=true` when the option is _not_ selected. " +"For example:" +msgstr "" +"Когда выбрана опция _OPT_, для каждого _элемента_ в `OPT_MESON_TRUE` " +"добавляется `-D_элемент_=true` в `MESON_ARGS`. Если опция _OPT_ _не_ " +"выбрана, добавляется `-D_элемент_=false` в `MESON_ARGS`. `OPT_MESON_FALSE` " +"работает противоположным образом: `-D_элемент_=false` добавляется в " +"`MESON_ARGS`, когда опция выбрана, и `-D_элемент_=true`, когда опция _не_ " +"выбрана. Например:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4522 +#, no-wrap +msgid "" +"OPTIONS_DEFINE=\tOPT1\n" +"OPT1_MESON_TRUE=\ttest debug\n" +"OPT1_MESON_FALSE=\toptimize\n" +msgstr "" +"OPTIONS_DEFINE=\tOPT1\n" +"OPT1_MESON_TRUE=\ttest debug\n" +"OPT1_MESON_FALSE=\toptimize\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4539 +#, no-wrap +msgid "" +".if ${PORT_OPTIONS:MOPT1}\n" +"MESON_ARGS+=\t-Dtest=true -Ddebug=true \\\n" +"\t\t-Doptimize=false\n" +".else\n" +"MESON_ARGS+=\t-Dtest=false -Ddebug=false \\\n" +"\t\t-Doptimize=true\n" +".endif\n" +msgstr "" +".if ${PORT_OPTIONS:MOPT1}\n" +"MESON_ARGS+=\t-Dtest=true -Ddebug=true \\\n" +"\t\t-Doptimize=false\n" +".else\n" +"MESON_ARGS+=\t-Dtest=false -Ddebug=false \\\n" +"\t\t-Doptimize=true\n" +".endif\n" + +#. type: Title ===== +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4542 +#, no-wrap +msgid "`OPT_MESON_YES` and `OPT_MESON_NO`" +msgstr "`OPT_MESON_YES` и `OPT_MESON_NO`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4548 +msgid "" +"When option _OPT_ is selected, for each _entry_ in `OPT_MESON_YES` then `-" +"D_entry_=yes` is appended to `MESON_ARGS`. When option _OPT_ is _not_ " +"selected, `-D_entry_=no` is appended to `MESON_ARGS`. `OPT_MESON_NO` is the " +"opposite, `-D_entry_=no` is appended to `MESON_ARGS` when the option is " +"selected, and `-D_entry_=yes` when the option is _not_ selected. For " +"example:" +msgstr "" +"Когда выбрана опция _OPT_, для каждого _элемента_ в `OPT_MESON_YES` " +"добавляется `-D_элемент_=yes` к `MESON_ARGS`. Если опция _OPT_ _не_ выбрана, " +"добавляется `-D_элемент_=no` к `MESON_ARGS`. `OPT_MESON_NO` работает " +"противоположным образом: `-D_элемент_=no` добавляется к `MESON_ARGS`, когда " +"опция выбрана, и `-D_элемент_=yes`, когда опция _не_ выбрана. Например:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4554 +#, no-wrap +msgid "" +"OPTIONS_DEFINE=\tOPT1\n" +"OPT1_MESON_YES=\ttest debug\n" +"OPT1_MESON_NO=\toptimize\n" +msgstr "" +"OPTIONS_DEFINE=\tOPT1\n" +"OPT1_MESON_YES=\ttest debug\n" +"OPT1_MESON_NO=\toptimize\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4571 +#, no-wrap +msgid "" +".if ${PORT_OPTIONS:MOPT1}\n" +"MESON_ARGS+=\t-Dtest=yes -Ddebug=yes \\\n" +"\t\t-Doptimize=no\n" +".else\n" +"MESON_ARGS+=\t-Dtest=no -Ddebug=no \\\n" +"\t\t-Doptimize=yes\n" +".endif\n" +msgstr "" +".if ${PORT_OPTIONS:MOPT1}\n" +"MESON_ARGS+=\t-Dtest=yes -Ddebug=yes \\\n" +"\t\t-Doptimize=no\n" +".else\n" +"MESON_ARGS+=\t-Dtest=no -Ddebug=no \\\n" +"\t\t-Doptimize=yes\n" +".endif\n" + +#. type: Title ===== +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4574 +#, no-wrap +msgid "`OPT_MESON_ENABLED` and `OPT_MESON_DISABLED`" +msgstr "`OPT_MESON_ENABLED` и `OPT_MESON_DISABLED`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4580 +msgid "" +"When option _OPT_ is selected, for each _entry_ in `OPT_MESON_ENABLED` then " +"`-D_entry_=enabled` is appended to `MESON_ARGS`. When option _OPT_ is _not_ " +"selected, `-D_entry_=disabled` is appended to `MESON_ARGS`. " +"`OPT_MESON_DISABLED` is the opposite, `-D_entry_=disabled` is appended to " +"`MESON_ARGS` when the option is selected, and `-D_entry_=enabled` when the " +"option is _not_ selected. For example:" +msgstr "" +"Когда выбрана опция _OPT_, для каждого _элемента_ в `OPT_MESON_ENABLED` " +"добавляется `-D_элемент_=enabled` к `MESON_ARGS`. Когда опция _OPT_ _не_ " +"выбрана, добавляется `-D_элемент_=disabled` к `MESON_ARGS`. " +"`OPT_MESON_DISABLED` работает противоположным образом: `-" +"D_элемент_=disabled` добавляется к `MESON_ARGS`, когда опция выбрана, и `-" +"D_элемент_=enabled`, когда опция _не_ выбрана. Например:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4586 +#, no-wrap +msgid "" +"OPTIONS_DEFINE=\tOPT1\n" +"OPT1_MESON_ENABLED=\ttest\n" +"OPT1_MESON_DISABLED=\tdebug\n" +msgstr "" +"OPTIONS_DEFINE=\tOPT1\n" +"OPT1_MESON_ENABLED=\ttest\n" +"OPT1_MESON_DISABLED=\tdebug\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4601 +#, no-wrap +msgid "" +".if ${PORT_OPTIONS:MOPT1}\n" +"MESON_ARGS+=\t-Dtest=enabled -Ddebug=disabled\n" +".else\n" +"MESON_ARGS+=\t-Dtest=disabled -Ddebug=enabled\n" +".endif\n" +msgstr "" +".if ${PORT_OPTIONS:MOPT1}\n" +"MESON_ARGS+=\t-Dtest=enabled -Ddebug=disabled\n" +".else\n" +"MESON_ARGS+=\t-Dtest=disabled -Ddebug=enabled\n" +".endif\n" + +#. type: Title ==== +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4604 +#, no-wrap +msgid "`OPT_QMAKE_ON` and `OPT_QMAKE_OFF`" +msgstr "`OPT_QMAKE_ON` и `OPT_QMAKE_OFF`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4609 +msgid "" +"When option _OPT_ is selected, the value of `OPT_QMAKE_ON`, if defined, is " +"appended to `QMAKE_ARGS`. `OPT_QMAKE_OFF` works the same way, but when " +"`OPT` is _not_ selected. For example:" +msgstr "" +"Когда выбрана опция _OPT_, значение `OPT_QMAKE_ON`, если оно определено, " +"добавляется к `QMAKE_ARGS`. `OPT_QMAKE_OFF` работает аналогичным образом, " +"но когда `OPT` _не_ выбрана. Например:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4615 +#, no-wrap +msgid "" +"OPTIONS_DEFINE=\tOPT1\n" +"OPT1_QMAKE_ON=\t-DTEST:BOOL=true\n" +"OPT1_QMAKE_OFF=\t-DPRODUCTION:BOOL=true\n" +msgstr "" +"OPTIONS_DEFINE=\tOPT1\n" +"OPT1_QMAKE_ON=\t-DTEST:BOOL=true\n" +"OPT1_QMAKE_OFF=\t-DPRODUCTION:BOOL=true\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4630 +#, no-wrap +msgid "" +".if ${PORT_OPTIONS:MOPT1}\n" +"QMAKE_ARGS+=\t-DTEST:BOOL=true\n" +".else\n" +"QMAKE_ARGS+=\t-DPRODUCTION:BOOL=true\n" +".endif\n" +msgstr "" +".if ${PORT_OPTIONS:MOPT1}\n" +"QMAKE_ARGS+=\t-DTEST:BOOL=true\n" +".else\n" +"QMAKE_ARGS+=\t-DPRODUCTION:BOOL=true\n" +".endif\n" + +#. type: Title ==== +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4633 +#, no-wrap +msgid "`OPT_IMPLIES`" +msgstr "`OPT_IMPLIES`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4636 +msgid "Provides a way to add dependencies between options." +msgstr "Предоставляет способ добавления зависимостей между опциями." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4639 +msgid "" +"When _OPT_ is selected, all the options listed in this variable will be " +"selected too. Using the crossref:makefiles[options-" +"configure_enable,`OPT_CONFIGURE_ENABLE`] described earlier to illustrate:" +msgstr "" +"При выборе _OPT_ все перечисленные в этой переменной опции также будут " +"выбраны. В качестве примера можно использовать описанный ранее " +"crossref:makefiles[options-configure_enable,`OPT_CONFIGURE_ENABLE`]:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4644 +#, no-wrap +msgid "" +"OPTIONS_DEFINE=\tOPT1 OPT2\n" +"OPT1_IMPLIES=\tOPT2\n" +msgstr "" +"OPTIONS_DEFINE=\tOPT1 OPT2\n" +"OPT1_IMPLIES=\tOPT2\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4647 +#, no-wrap +msgid "" +"OPT1_CONFIGURE_ENABLE=\topt1\n" +"OPT2_CONFIGURE_ENABLE=\topt2\n" +msgstr "" +"OPT1_CONFIGURE_ENABLE=\topt1\n" +"OPT2_CONFIGURE_ENABLE=\topt2\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4650 +msgid "Is equivalent to:" +msgstr "Эквивалентно:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4662 +#, no-wrap +msgid "" +".if ${PORT_OPTIONS:MOPT1}\n" +"CONFIGURE_ARGS+=\t--enable-opt1\n" +".else\n" +"CONFIGURE_ARGS+=\t--disable-opt1\n" +".endif\n" +msgstr "" +".if ${PORT_OPTIONS:MOPT1}\n" +"CONFIGURE_ARGS+=\t--enable-opt1\n" +".else\n" +"CONFIGURE_ARGS+=\t--disable-opt1\n" +".endif\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4668 +#, no-wrap +msgid "" +".if ${PORT_OPTIONS:MOPT2} || ${PORT_OPTIONS:MOPT1}\n" +"CONFIGURE_ARGS+=\t--enable-opt2\n" +".else\n" +"CONFIGURE_ARGS+=\t--disable-opt2\n" +".endif\n" +msgstr "" +".if ${PORT_OPTIONS:MOPT2} || ${PORT_OPTIONS:MOPT1}\n" +"CONFIGURE_ARGS+=\t--enable-opt2\n" +".else\n" +"CONFIGURE_ARGS+=\t--disable-opt2\n" +".endif\n" + +#. type: Block title +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4671 +#, no-wrap +msgid "Simple Use of `OPT_IMPLIES`" +msgstr "Простое использование `OPT_IMPLIES`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4676 +msgid "" +"This port has a `X11` option, and a `GNOME` option that needs the `X11` " +"option to be selected to build." +msgstr "" +"Этот порт имеет опцию `X11` и опцию `GNOME`, для сборки которой необходимо " +"выбрать опцию `X11`." + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4681 +#, no-wrap +msgid "" +"OPTIONS_DEFINE=\tX11 GNOME\n" +"OPTIONS_DEFAULT=\tX11\n" +msgstr "" +"OPTIONS_DEFINE=\tX11 GNOME\n" +"OPTIONS_DEFAULT=\tX11\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4686 +#, no-wrap +msgid "" +"X11_USES=\txorg\n" +"X11_USE=\txorg=xi,xextproto\n" +"GNOME_USE=\tgnome=gtk30\n" +"GNOME_IMPLIES=\tX11\n" +msgstr "" +"X11_USES=\txorg\n" +"X11_USE=\txorg=xi,xextproto\n" +"GNOME_USE=\tgnome=gtk30\n" +"GNOME_IMPLIES=\tX11\n" + +#. type: Title ==== +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4691 +#, no-wrap +msgid "`OPT_PREVENTS` and `OPT_PREVENTS_MSG`" +msgstr "`OPT_PREVENTS` и `OPT_PREVENTS_MSG`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4694 +msgid "Provides a way to add conflicts between options." +msgstr "Предоставляет способ добавления конфликтов между опциями." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4698 +msgid "" +"When _OPT_ is selected, all the options listed in `OPT_PREVENTS` must be un-" +"selected. If `OPT_PREVENTS_MSG` is set and a conflict is triggered, its " +"content will be shown explaining why they conflict. For example:" +msgstr "" +"Когда выбрана _OPT_, все опции, перечисленные в `OPT_PREVENTS`, должны быть " +"сняты. Если задано `OPT_PREVENTS_MSG` и возникает конфликт, его содержимое " +"будет показано с объяснением причины конфликта. Например:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4704 +#, no-wrap +msgid "" +"OPTIONS_DEFINE=\tOPT1 OPT2\n" +"OPT1_PREVENTS=\tOPT2\n" +"OPT1_PREVENTS_MSG=\tOPT1 and OPT2 enable conflicting options\n" +msgstr "" +"OPTIONS_DEFINE=\tOPT1 OPT2\n" +"OPT1_PREVENTS=\tOPT2\n" +"OPT1_PREVENTS_MSG=\tOPT1 and OPT2 enable conflicting options\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4707 +msgid "Is roughly equivalent to:" +msgstr "Примерно эквивалентно:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4717 +#, no-wrap +msgid "" +".if ${PORT_OPTIONS:MOPT2} && ${PORT_OPTIONS:MOPT1}\n" +"BROKEN=\tOption OPT1 conflicts with OPT2 (select only one)\n" +".endif\n" +msgstr "" +".if ${PORT_OPTIONS:MOPT2} && ${PORT_OPTIONS:MOPT1}\n" +"BROKEN=\tOption OPT1 conflicts with OPT2 (select only one)\n" +".endif\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4720 +msgid "" +"The only difference is that the first one will write an error after running " +"`make config`, suggesting changing the selected options." +msgstr "" +"Единственное отличие заключается в том, что первый вариант выведет ошибку " +"после выполнения `make config`, предлагая изменить выбранные настройки." + +#. type: Block title +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4722 +#, no-wrap +msgid "Simple Use of `OPT_PREVENTS`" +msgstr "Простое использование `OPT_PREVENTS`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4728 +msgid "" +"This port has `X509` and `SCTP` options. Both options add patches, but the " +"patches conflict with each other, so they cannot be selected at the same " +"time." +msgstr "" +"Этот порт имеет опции `X509` и `SCTP`. Обе опции добавляют патчи, но патчи " +"конфликтуют друг с другом, поэтому их нельзя выбрать одновременно." + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4732 +#, no-wrap +msgid "OPTIONS_DEFINE=\tX509 SCTP\n" +msgstr "OPTIONS_DEFINE=\tX509 SCTP\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4735 +#, no-wrap +msgid "" +"SCTP_PATCHFILES=\t${PORTNAME}-6.8p1-sctp-2573.patch.gz:-p1\n" +"SCTP_CONFIGURE_WITH=\tsctp\n" +msgstr "" +"SCTP_PATCHFILES=\t${PORTNAME}-6.8p1-sctp-2573.patch.gz:-p1\n" +"SCTP_CONFIGURE_WITH=\tsctp\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4740 +#, no-wrap +msgid "" +"X509_PATCH_SITES=\thttp://www.roumenpetrov.info/openssh/x509/:x509\n" +"X509_PATCHFILES=\t${PORTNAME}-7.0p1+x509-8.5.diff.gz:-p1:x509\n" +"X509_PREVENTS=\t\tSCTP\n" +"X509_PREVENTS_MSG=\tX509 and SCTP patches conflict\n" +msgstr "" +"X509_PATCH_SITES=\thttp://www.roumenpetrov.info/openssh/x509/:x509\n" +"X509_PATCHFILES=\t${PORTNAME}-7.0p1+x509-8.5.diff.gz:-p1:x509\n" +"X509_PREVENTS=\t\tSCTP\n" +"X509_PREVENTS_MSG=\tX509 and SCTP patches conflict\n" + +#. type: Title ==== +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4745 +#, no-wrap +msgid "`OPT_VARS` and `OPT_VARS_OFF`" +msgstr "`OPT_VARS` и `OPT_VARS_OFF`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4748 +msgid "Provides a generic way to set and append to variables." +msgstr "" +"Предоставляет универсальный способ установки и добавления значений " +"переменным." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4753 +msgid "" +"Before using `OPT_VARS` and `OPT_VARS_OFF`, see if there is already a more " +"specific helper available in crossref:makefiles[options-variables, Generic " +"Variables Replacement, `OPT_VARIABLE` and `OPT_VARIABLE_OFF`]." +msgstr "" +"Перед использованием `OPT_VARS` и `OPT_VARS_OFF` проверьте, доступен ли " +"более специфичный вспомогательный инструмент в crossref:makefiles[options-" +"variables, Универсальная замена переменных, `OPT_VARIABLE` и " +"`OPT_VARIABLE_OFF`]." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4758 +msgid "" +"When option _OPT_ is selected, and `OPT_VARS` defined, `_key_=_value_` and " +"`_key_+=_value_` pairs are evaluated from `OPT_VARS`. An `=` cause the " +"existing value of `KEY` to be overwritten, an `+=` appends to the value. " +"`OPT_VARS_OFF` works the same way, but when `OPT` is _not_ selected." +msgstr "" +"Когда выбрана опция _OPT_ и определены `OPT_VARS`, пары `_key_=_value_` и " +"`_key_+=_value_` обрабатываются из `OPT_VARS`. Оператор `=` приводит к " +"перезаписи существующего значения `KEY`, а `+=` добавляет к значению. " +"`OPT_VARS_OFF` работает аналогично, но когда `OPT` _не_ выбрана." + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4766 +#, no-wrap +msgid "" +"OPTIONS_DEFINE=\tOPT1 OPT2 OPT3\n" +"OPT1_VARS=\talso_build+=bin1\n" +"OPT2_VARS=\talso_build+=bin2\n" +"OPT3_VARS=\tbin3_build=yes\n" +"OPT3_VARS_OFF=\tbin3_build=no\n" +msgstr "" +"OPTIONS_DEFINE=\tOPT1 OPT2 OPT3\n" +"OPT1_VARS=\talso_build+=bin1\n" +"OPT2_VARS=\talso_build+=bin2\n" +"OPT3_VARS=\tbin3_build=yes\n" +"OPT3_VARS_OFF=\tbin3_build=no\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4768 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4777 +#, no-wrap +msgid "MAKE_ARGS=\tALSO_BUILD=\"${ALSO_BUILD}\" BIN3_BUILD=\"${BIN3_BUILD}\"\n" +msgstr "MAKE_ARGS=\tALSO_BUILD=\"${ALSO_BUILD}\" BIN3_BUILD=\"${BIN3_BUILD}\"\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4783 +#, no-wrap +msgid "" +".if ${PORT_OPTIONS:MOPT1}\n" +"ALSO_BUILD+=\tbin1\n" +".endif\n" +msgstr "" +".if ${PORT_OPTIONS:MOPT1}\n" +"ALSO_BUILD+=\tbin1\n" +".endif\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4787 +#, no-wrap +msgid "" +".if ${PORT_OPTIONS:MOPT2}\n" +"ALSO_BUILD+=\tbin2\n" +".endif\n" +msgstr "" +".if ${PORT_OPTIONS:MOPT2}\n" +"ALSO_BUILD+=\tbin2\n" +".endif\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4793 +#, no-wrap +msgid "" +".if ${PORT_OPTIONS:MOPT2}\n" +"BIN3_BUILD=\tyes\n" +".else\n" +"BIN3_BUILD=\tno\n" +".endif\n" +msgstr "" +".if ${PORT_OPTIONS:MOPT2}\n" +"BIN3_BUILD=\tyes\n" +".else\n" +"BIN3_BUILD=\tno\n" +".endif\n" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4798 +msgid "Values containing whitespace must be enclosed in quotes:" +msgstr "Значения, содержащие пробелы, должны быть заключены в кавычки:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4802 +#, no-wrap +msgid "OPT_VARS=\tfoo=\"bar baz\"\n" +msgstr "OPT_VARS=\tfoo=\"bar baz\"\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4808 +msgid "" +"This is due to the way man:make[1] variable expansion deals with " +"whitespace. When `OPT_VARS= foo=bar baz` is expanded, the variable ends up " +"containing two strings, `foo=bar` and `baz`. But the submitter probably " +"intended there to be only one string, `foo=bar baz`. Quoting the value " +"prevents whitespace from being used as a delimiter." +msgstr "" +"Это связано с тем, как man:make[1] обрабатывает пробелы при раскрытии " +"переменных. Когда `OPT_VARS= foo=bar baz` раскрывается, переменная в итоге " +"содержит две строки: `foo=bar` и `baz`. Однако отправитель, вероятно, " +"предполагал, что должна быть только одна строка — `foo=bar baz`. Заключение " +"значения в кавычки предотвращает использование пробела в качестве " +"разделителя." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4811 +msgid "" +"Also, _do not_ add extra spaces after the `_var_=` sign and before the " +"value, it would also be split into two strings. _This will not work_:" +msgstr "" +"Также _не_ добавляйте лишние пробелы после знака `_var_=` и перед значением, " +"это также разобьёт строку на две части. _Это не сработает_:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4815 +#, no-wrap +msgid "OPT_VARS=\tfoo=\tbar\n" +msgstr "OPT_VARS=\tfoo=\tbar\n" + +#. type: Title ==== +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4820 +#, no-wrap +msgid "Dependencies, `OPT_DEPTYPE` and `OPT_DEPTYPE_OFF`" +msgstr "Зависимости, `OPT_DEPTYPE` и `OPT_DEPTYPE_OFF`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4823 +msgid "For any of these dependency types:" +msgstr "Для любого из этих типов зависимостей:" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4825 +msgid "`PKG_DEPENDS`" +msgstr "`PKG_DEPENDS`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4835 +msgid "" +"When option _OPT_ is selected, the value of `OPT_DEPTYPE`, if defined, is " +"appended to `DEPTYPE`. `OPT_DEPTYPE_OFF` works the same, but when `OPT` is " +"_not_ selected. For example:" +msgstr "" +"Когда выбрана опция _OPT_, значение `OPT_DEPTYPE`, если оно определено, " +"добавляется к `DEPTYPE`. `OPT_DEPTYPE_OFF` работает аналогично, но когда " +"_не_ выбрана `OPT`. Например:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4841 +#, no-wrap +msgid "" +"OPTIONS_DEFINE=\tOPT1\n" +"OPT1_LIB_DEPENDS=\tliba.so:devel/a\n" +"OPT1_LIB_DEPENDS_OFF=\tlibb.so:devel/b\n" +msgstr "" +"OPTIONS_DEFINE=\tOPT1\n" +"OPT1_LIB_DEPENDS=\tliba.so:devel/a\n" +"OPT1_LIB_DEPENDS_OFF=\tlibb.so:devel/b\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4856 +#, no-wrap +msgid "" +".if ${PORT_OPTIONS:MOPT1}\n" +"LIB_DEPENDS+=\tliba.so:devel/a\n" +".else\n" +"LIB_DEPENDS+=\tlibb.so:devel/b\n" +".endif\n" +msgstr "" +".if ${PORT_OPTIONS:MOPT1}\n" +"LIB_DEPENDS+=\tliba.so:devel/a\n" +".else\n" +"LIB_DEPENDS+=\tlibb.so:devel/b\n" +".endif\n" + +#. type: Title ==== +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4859 +#, no-wrap +msgid "Generic Variables Replacement, `OPT_VARIABLE` and `OPT_VARIABLE_OFF`" +msgstr "Универсальная замена переменных, `OPT_VARIABLE` и `OPT_VARIABLE_OFF`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4862 +msgid "For any of these variables:" +msgstr "Для любой из этих переменных:" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4864 +msgid "`ALL_TARGET`" +msgstr "`ALL_TARGET`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4865 +msgid "`BINARY_ALIAS`" +msgstr "`BINARY_ALIAS`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4866 +msgid "`BROKEN`" +msgstr "`BROKEN`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4868 +msgid "`CFLAGS`" +msgstr "`CFLAGS`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4869 +msgid "`CONFIGURE_ENV`" +msgstr "`CONFIGURE_ENV`" + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4870 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:5109 +#, no-wrap +msgid "`CONFLICTS`" +msgstr "`CONFLICTS`" + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4871 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:5104 +#, no-wrap +msgid "`CONFLICTS_BUILD`" +msgstr "`CONFLICTS_BUILD`" + +#. type: Labeled list +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4872 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:5099 +#, no-wrap +msgid "`CONFLICTS_INSTALL`" +msgstr "`CONFLICTS_INSTALL`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4873 +msgid "`CPPFLAGS`" +msgstr "`CPPFLAGS`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4874 +msgid "`CXXFLAGS`" +msgstr "`CXXFLAGS`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4875 +msgid "`DESKTOP_ENTRIES`" +msgstr "`DESKTOP_ENTRIES`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4878 +msgid "`EXTRA_PATCHES`" +msgstr "`EXTRA_PATCHES`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4890 +msgid "`IGNORE`" +msgstr "`IGNORE`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4891 +msgid "`INFO`" +msgstr "`INFO`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4892 +msgid "`INSTALL_TARGET`" +msgstr "`INSTALL_TARGET`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4893 +msgid "`LDFLAGS`" +msgstr "`LDFLAGS`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4894 +msgid "`LIBS`" +msgstr "`LIBS`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4895 +msgid "`MAKE_ARGS`" +msgstr "`MAKE_ARGS`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4896 +msgid "`MAKE_ENV`" +msgstr "`MAKE_ENV`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4899 +msgid "`PATCH_SITES`" +msgstr "`PATCH_SITES`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4900 +msgid "`PLIST_DIRS`" +msgstr "`PLIST_DIRS`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4901 +msgid "`PLIST_FILES`" +msgstr "`PLIST_FILES`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4902 +msgid "`PLIST_SUB`" +msgstr "`PLIST_SUB`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4903 +msgid "`PORTDOCS`" +msgstr "`PORTDOCS`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4904 +msgid "`PORTEXAMPLES`" +msgstr "`PORTEXAMPLES`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4905 +msgid "`SUB_FILES`" +msgstr "`SUB_FILES`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4906 +msgid "`SUB_LIST`" +msgstr "`SUB_LIST`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4907 +msgid "`TEST_TARGET`" +msgstr "`TEST_TARGET`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4912 +msgid "" +"When option _OPT_ is selected, the value of `OPT_ABOVEVARIABLE`, if defined, " +"is appended to `_ABOVEVARIABLE_`. `OPT_ABOVEVARIABLE_OFF` works the same " +"way, but when `OPT` is _not_ selected. For example:" +msgstr "" +"Когда выбрана опция _OPT_, значение `OPT_ABOVEVARIABLE`, если оно " +"определено, добавляется к `_ABOVEVARIABLE_`. `OPT_ABOVEVARIABLE_OFF` " +"работает аналогично, но когда `OPT` _не_ выбрана. Например:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4918 +#, no-wrap +msgid "" +"OPTIONS_DEFINE=\tOPT1\n" +"OPT1_USES=\tgmake\n" +"OPT1_CFLAGS_OFF=\t-DTEST\n" +msgstr "" +"OPTIONS_DEFINE=\tOPT1\n" +"OPT1_USES=\tgmake\n" +"OPT1_CFLAGS_OFF=\t-DTEST\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4933 +#, no-wrap +msgid "" +".if ${PORT_OPTIONS:MOPT1}\n" +"USES+=\t\tgmake\n" +".else\n" +"CFLAGS+=\t-DTEST\n" +".endif\n" +msgstr "" +".if ${PORT_OPTIONS:MOPT1}\n" +"USES+=\t\tgmake\n" +".else\n" +"CFLAGS+=\t-DTEST\n" +".endif\n" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4940 +msgid "" +"Some variables are not in this list, in particular `PKGNAMEPREFIX` and " +"`PKGNAMESUFFIX`. This is intentional. A port _must not_ change its name " +"when its option set changes." +msgstr "" +"Некоторые переменные отсутствуют в этом списке, в частности `PKGNAMEPREFIX` " +"и `PKGNAMESUFFIX`. Это сделано намеренно. Порт _не должен_ изменять своё имя " +"при изменении набора опций." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4945 +msgid "" +"Some of these variables, at least `ALL_TARGET`, `DISTFILES` and " +"`INSTALL_TARGET`, have their default values set _after_ the options are " +"processed." +msgstr "" +"Некоторые из этих переменных, по крайней мере `ALL_TARGET`, `DISTFILES` и " +"`INSTALL_TARGET`, получают свои значения по умолчанию _после_ обработки " +"опций." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4947 +msgid "With these lines in the [.filename]#Makefile#:" +msgstr "С такими строками в [.filename]#Makefile#:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4951 +#, no-wrap +msgid "ALL_TARGET=\tall\n" +msgstr "ALL_TARGET=\tall\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4953 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4962 +#, no-wrap +msgid "DOCS_ALL_TARGET=\tdoc\n" +msgstr "DOCS_ALL_TARGET=\tdoc\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4956 +msgid "" +"If the `DOCS` option is enabled, `ALL_TARGET` will have a final value of " +"`all doc`; if the option is disabled, it would have a value of `all`." +msgstr "" +"Если опция `DOCS` включена, `ALL_TARGET` будет иметь конечное значение `all " +"doc`; если опция отключена, значение будет `all`." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4958 +msgid "With only the options helper line in the [.filename]#Makefile#:" +msgstr "Только со строкой помощника опций в [.filename]#Makefile#:" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4965 +msgid "" +"If the `DOCS` option is enabled, `ALL_TARGET` will have a final value of " +"`doc`; if the option is disabled, it would have a value of `all`." +msgstr "" +"Если опция `DOCS` включена, `ALL_TARGET` будет иметь окончательное значение " +"`doc`; если опция отключена, значение будет `all`." + +#. type: Title ==== +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4968 +#, no-wrap +msgid "Additional Build Targets, `_target_-_OPT_-on` and `_target_-_OPT_-off`" +msgstr "Дополнительные цели сборки, `_target_-_OPT_-on` и `_target_-_OPT_-off`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4971 +msgid "" +"These [.filename]#Makefile# targets can accept optional extra build targets:" +msgstr "" +"Эти цели в [.filename]#Makefile# могут принимать дополнительные опциональные " +"цели сборки:" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4973 +msgid "`pre-fetch`" +msgstr "`pre-fetch`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4974 +msgid "`do-fetch`" +msgstr "`do-fetch`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4975 +msgid "`post-fetch`" +msgstr "`post-fetch`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4976 +msgid "`pre-extract`" +msgstr "`pre-extract`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4977 +msgid "`do-extract`" +msgstr "`do-extract`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4978 +msgid "`post-extract`" +msgstr "`post-extract`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4979 +msgid "`pre-patch`" +msgstr "`pre-patch`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4980 +msgid "`do-patch`" +msgstr "`do-patch`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4981 +msgid "`post-patch`" +msgstr "`post-patch`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4982 +msgid "`pre-configure`" +msgstr "`pre-configure`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4983 +msgid "`do-configure`" +msgstr "`do-configure`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4984 +msgid "`post-configure`" +msgstr "`post-configure`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4985 +msgid "`pre-build`" +msgstr "`pre-build`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4986 +msgid "`do-build`" +msgstr "`do-build`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4987 +msgid "`post-build`" +msgstr "`post-build`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4988 +msgid "`pre-install`" +msgstr "`pre-install`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4989 +msgid "`do-install`" +msgstr "`do-install`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4990 +msgid "`post-install`" +msgstr "`post-install`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4991 +msgid "`post-stage`" +msgstr "`post-stage`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4992 +msgid "`pre-package`" +msgstr "`pre-package`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4993 +msgid "`do-package`" +msgstr "`do-package`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4994 +msgid "`post-package`" +msgstr "`post-package`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4998 +msgid "" +"When option _OPT_ is selected, the target `_TARGET_-_OPT_-on`, if defined, " +"is executed after `_TARGET_`. `_TARGET_-_OPT_-off` works the same way, but " +"when `OPT` is _not_ selected. For example:" +msgstr "" +"Когда выбрана опция _OPT_, цель `_TARGET_-_OPT_-on`, если она определена, " +"выполняется после `_TARGET_`. `_TARGET_-_OPT_-off` работает аналогично, но " +"когда `OPT` _не_ выбрана. Например:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:5005 +#, no-wrap +msgid "" +"post-patch-OPT1-on:\n" +"\t@${REINPLACE_CMD} -e '/opt1/s|/usr/bin/|${EXAMPLESDIR}/|' ${WRKSRC}/Makefile\n" +msgstr "" +"post-patch-OPT1-on:\n" +"\t@${REINPLACE_CMD} -e '/opt1/s|/usr/bin/|${EXAMPLESDIR}/|' ${WRKSRC}/Makefile\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:5008 +#, no-wrap +msgid "" +"post-patch-OPT1-off:\n" +"\t@${REINPLACE_CMD} -e '/opt1/s|/usr/bin/|${PREFIX}/bin/|' ${WRKSRC}/Makefile\n" +msgstr "" +"post-patch-OPT1-off:\n" +"\t@${REINPLACE_CMD} -e '/opt1/s|/usr/bin/|${PREFIX}/bin/|' ${WRKSRC}/Makefile\n" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:5024 +#, no-wrap +msgid "" +"post-patch:\n" +".if ${PORT_OPTIONS:MOPT1}\n" +"\t@${REINPLACE_CMD} -e '/opt1/s|/usr/bin/|${EXAMPLESDIR}/|' ${WRKSRC}/Makefile\n" +".else\n" +"\t@${REINPLACE_CMD} -e '/opt1/s|/usr/bin/|${PREFIX}/bin/|' ${WRKSRC}/Makefile\n" +".endif\n" +msgstr "" +"post-patch:\n" +".if ${PORT_OPTIONS:MOPT1}\n" +"\t@${REINPLACE_CMD} -e '/opt1/s|/usr/bin/|${EXAMPLESDIR}/|' ${WRKSRC}/Makefile\n" +".else\n" +"\t@${REINPLACE_CMD} -e '/opt1/s|/usr/bin/|${PREFIX}/bin/|' ${WRKSRC}/Makefile\n" +".endif\n" + +#. type: Title == +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:5027 +#, no-wrap +msgid "Specifying the Working Directory" +msgstr "Указание рабочего каталога" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:5032 +msgid "" +"Each port is extracted into a working directory, which must be writable. " +"The ports system defaults to having `DISTFILES` unpack in to a directory " +"called `${DISTNAME}`. In other words, if the [.filename]#Makefile# has:" +msgstr "" +"Каждый порт извлекается в рабочий каталог, который должен быть доступен для " +"записи. Система портов по умолчанию распаковывает `DISTFILES` в каталог с " +"именем `${DISTNAME}`. Другими словами, если в [.filename]#Makefile# указано:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:5037 +#, no-wrap +msgid "" +"PORTNAME=\tfoo\n" +"DISTVERSION=\t1.0\n" +msgstr "" +"PORTNAME=\tfoo\n" +"DISTVERSION=\t1.0\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:5040 +msgid "" +"then the port's distribution files contain a top-level directory, " +"[.filename]#foo-1.0#, and the rest of the files are located under that " +"directory." +msgstr "" +"то файлы дистрибутива порта содержат каталог верхнего уровня " +"[.filename]#foo-1.0#, и остальные файлы находятся в этом каталоге." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:5042 +msgid "A number of variables can be overridden if that is not the case." +msgstr "" +"Если нужно расположение файлов в других каталогах, можно переопределить ряд " +"переменных." + +#. type: Title === +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:5044 +#, no-wrap +msgid "`WRKSRC`" +msgstr "`WRKSRC`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:5048 +msgid "" +"The variable lists the name of the directory that is created when the " +"application's distfiles are extracted. If our previous example extracted " +"into a directory called [.filename]#foo# (and not [.filename]#foo-1.0#) " +"write:" +msgstr "" +"Переменная указывает имя каталога, который создается при распаковке " +"distfiles приложения. Чтобы в нашем предыдущем примере распаковка " +"происходила в каталог с именем [.filename]#foo# (а не [.filename]#foo-1.0#), " +"напишите:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:5052 +#, no-wrap +msgid "WRKSRC=\t${WRKDIR}/foo\n" +msgstr "WRKSRC=\t${WRKDIR}/foo\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:5055 +msgid "or possibly" +msgstr "или можно" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:5059 +#, no-wrap +msgid "WRKSRC=\t${WRKDIR}/${PORTNAME}\n" +msgstr "WRKSRC=\t${WRKDIR}/${PORTNAME}\n" + +#. type: Title === +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:5062 +#, no-wrap +msgid "`WRKSRC_SUBDIR`" +msgstr "`WRKSRC_SUBDIR`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:5065 +msgid "" +"If the source files needed for the port are in a subdirectory of the " +"extracted distribution file, set `WRKSRC_SUBDIR` to that directory." +msgstr "" +"Если исходные файлы, необходимые для порта, находятся в подкаталоге " +"распакованного дистрибутива, присвойте `WRKSRC_SUBDIR` имя этого каталога." + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:5069 +#, no-wrap +msgid "WRKSRC_SUBDIR=\tsrc\n" +msgstr "WRKSRC_SUBDIR=\tsrc\n" + +#. type: Title === +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:5072 +#, no-wrap +msgid "`NO_WRKSUBDIR`" +msgstr "`NO_WRKSUBDIR`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:5075 +msgid "" +"If the port does not extract in to a subdirectory at all, then set " +"`NO_WRKSUBDIR` to indicate that." +msgstr "" +"Если порт не распаковывается в подкаталог вообще, установите `NO_WRKSUBDIR`, " +"чтобы указать это." + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:5079 +#, no-wrap +msgid "NO_WRKSUBDIR=\tyes\n" +msgstr "NO_WRKSUBDIR=\tyes\n" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:5084 +msgid "" +"Because `WRKDIR` is the only directory that is supposed to be writable " +"during the build, and is used to store many files recording the status of " +"the build, the port's extraction will be forced into a subdirectory." +msgstr "" +"Поскольку `WRKDIR` является единственной директорией, которая должна быть " +"доступна для записи во время сборки, и используется для хранения многих " +"файлов, фиксирующих состояние сборки, извлечение порта будет принудительно " +"выполнено в поддиректорию." + +#. type: Title == +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:5087 +#, no-wrap +msgid "Conflict Handling" +msgstr "Обработка конфликтов" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:5090 +msgid "" +"There are three different variables to register a conflict between packages " +"and ports: `CONFLICTS`, `CONFLICTS_INSTALL` and `CONFLICTS_BUILD`." +msgstr "" +"Существует три различные переменные для регистрации конфликтов между " +"пакетами и портами: `CONFLICTS`, `CONFLICTS_INSTALL` и `CONFLICTS_BUILD`." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:5094 +msgid "" +"The conflict variables automatically set the variable `IGNORE`, which is " +"more fully documented in crossref:porting-dads[dads-noinstall,Marking a Port " +"Not Installable with `BROKEN`, `FORBIDDEN`, or `IGNORE`]." +msgstr "" +"Эти переменные автоматически устанавливают переменную `IGNORE`, более " +"подробно описанную в crossref:porting-dads[dads-noinstall,Пометка порта как " +"неустанавливаемого с помощью `BROKEN`, `FORBIDDEN` или `IGNORE`]." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:5097 +msgid "" +"When removing one of several conflicting ports, it is advisable to retain " +"`CONFLICTS` in those other ports for a few months to cater for users who " +"only update once in a while." +msgstr "" +"При удалении одного из нескольких конфликтующих портов рекомендуется " +"оставлять `CONFLICTS` в тех других портах на несколько месяцев, чтобы учесть " +"пользователей, которые обновляются лишь время от времени." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:5102 +msgid "" +"If the package cannot coexist with other packages (because of file " +"conflicts, runtime incompatibilities, etc.). `CONFLICTS_INSTALL` check is " +"done after the build stage and prior to the install stage." +msgstr "" +"Если пакет не может сосуществовать с другими пакетами (из-за конфликтов " +"файлов, несовместимости во время выполнения и т.д.). Проверка " +"`CONFLICTS_INSTALL` выполняется после этапа сборки и перед этапом установки." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:5107 +msgid "" +"If the port cannot be built when other specific ports are already " +"installed. Build conflicts are not recorded in the resulting package." +msgstr "" +"Если порт не может быть собран, когда уже установлены другие определённые " +"порты. Конфликты сборки не фиксируются в результирующем пакете." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:5112 +msgid "" +"If the port cannot be built if a certain port is already installed and the " +"resulting package cannot coexist with the other package. `CONFLICTS` check " +"is done prior to the build stage and prior to the install stage." +msgstr "" +"Если порт не может быть собран, когда определённый порт уже установлен и " +"итоговый пакет не может сосуществовать с другим пакетом. Проверка " +"`CONFLICTS` выполняется до этапа сборки и до этапа установки." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:5116 +msgid "" +"Each space-separated item in the `CONFLICTS*` variable values is matched " +"against packages except the one being built, using shell globbing rules. " +"This allows listing all flavors of a port in a conflict list instead of " +"having to take pains to exclude the flavor being built from that list. For " +"example, if git-lite is installed, `CONFLICTS_INSTALL=git git-lite` would " +"allow to perform:" +msgstr "" +"Каждый элемент, разделённый пробелами, в значениях переменных `CONFLICTS*` " +"сопоставляется с пакетами(кроме того, который собирается) с использованием " +"правил раскрытия шаблонов имен файлов в оболочке shell. Это позволяет " +"перечислить все варианты порта в списке конфликтов вместо необходимости " +"исключать собираемый вариант из этого списка. Например, если установлен git-" +"lite, `CONFLICTS_INSTALL=git git-lite` позволит выполнить:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:5119 +#, no-wrap +msgid "% make -C devel/git FLAVOR=lite all deinstall install\n" +msgstr "% make -C devel/git FLAVOR=lite all deinstall install\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:5122 +msgid "" +"But the following command would report a conflict, since the package base " +"name installed is `git-lite`, while `git` would be built, but cannot be " +"installed in addition to `git-lite`:" +msgstr "" +"Но следующая команда сообщит о конфликте, так как установленное имя базового " +"пакета — `git-lite`, а `git` будет собран, но не может быть установлен " +"вместе с `git-lite`:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:5125 +#, no-wrap +msgid "% make -C devel/git FLAVOR=default all deinstall install\n" +msgstr "% make -C devel/git FLAVOR=default all deinstall install\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:5128 +msgid "" +"Without that feature, the Makefile would need one " +"`_flavor__CONFLICTS_INSTALL` for each flavor, listing every other flavor." +msgstr "" +"Без этой функции Makefile потребовал бы по одному " +"`_flavor__CONFLICTS_INSTALL` для каждого варианта, перечисляя все остальные " +"варианты." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:5131 +msgid "" +"The most common content of one of these variable is the package base of " +"another port. The package base is the package name without the appended " +"version, it can be obtained by running `make -V PKGBASE`." +msgstr "" +"Наиболее распространённым содержимым одной из этих переменных является база " +"пакета другого порта. База пакета — это имя пакета без указания версии, её " +"можно получить, выполнив команду `make -V PKGBASE`." + +#. type: Block title +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:5133 +#, no-wrap +msgid "Basic usage of `CONFLICTS*`" +msgstr "Простой пример использования `CONFLICTS*`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:5139 +msgid "" +"package:dns/bind99[] cannot be installed if package:dns/bind910[] is present " +"because they install same files. First gather the package base to use:" +msgstr "" +"Пакет package:dns/bind99[] не может быть установлен, если присутствует пакет " +"package:dns/bind910[], так как они устанавливают одинаковые файлы. Сначала " +"соберите базовый пакет для использования:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:5146 +#, no-wrap +msgid "" +"% make -C dns/bind99 -V PKGBASE\n" +"bind99\n" +"% make -C dns/bind910 -V PKGBASE\n" +"bind910\n" +msgstr "" +"% make -C dns/bind99 -V PKGBASE\n" +"bind99\n" +"% make -C dns/bind910 -V PKGBASE\n" +"bind910\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:5149 +msgid "Then add to the [.filename]#Makefile# of package:dns/bind99[]:" +msgstr "Затем добавьте в [.filename]#Makefile# пакета package:dns/bind99[]:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:5153 +#, no-wrap +msgid "CONFLICTS_INSTALL=\tbind910\n" +msgstr "CONFLICTS_INSTALL=\tbind910\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:5156 +msgid "And add to the [.filename]#Makefile# of package:dns/bind910[]:" +msgstr "И добавьте в [.filename]#Makefile# пакета package:dns/bind910[]:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:5160 +#, no-wrap +msgid "CONFLICTS_INSTALL=\tbind99\n" +msgstr "CONFLICTS_INSTALL=\tbind99\n" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:5167 +msgid "" +"Sometimes, only certain versions of another port are incompatible. When " +"this is the case, use the full package name including the version. If " +"necessary, use shell globs like `*` and `?` so that all necessary versions " +"are matched." +msgstr "" +"Иногда только определенные версии другого порта несовместимы. В этом случае " +"используйте полное имя пакета, включая версию. При необходимости используйте " +"подстановочные символы шаблонов имён файлов оболочки, такие как `*` и `?`, " +"чтобы охватить все необходимые версии." + +#. type: Block title +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:5169 +#, no-wrap +msgid "Using `CONFLICTS*` With Globs." +msgstr "Использование `CONFLICTS*` с шаблонами имён файлов." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:5174 +msgid "" +"From versions from 2.0 and up-to 2.4.1_2, package:deskutils/gnotime[] used " +"to install a bundled version of package:databases/qof[]." +msgstr "" +"В версиях с 2.0 по 2.4.1_2 пакет package:deskutils/gnotime[] устанавливал " +"встроенную версию пакета package:databases/qof[]." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:5176 +msgid "" +"To reflect this past, the [.filename]#Makefile# of package:databases/qof[] " +"contains:" +msgstr "" +"Чтобы отразить это прошлое, [.filename]#Makefile# пакета package:databases/" +"qof[] содержит:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:5182 +#, no-wrap +msgid "" +"CONFLICTS_INSTALL=\tgnotime-2.[0-3]* \\\n" +"\t\t\tgnotime-2.4.0* gnotime-2.4.1 \\\n" +"\t\t\tgnotime-2.4.1_[12]\n" +msgstr "" +"CONFLICTS_INSTALL=\tgnotime-2.[0-3]* \\\n" +"\t\t\tgnotime-2.4.0* gnotime-2.4.1 \\\n" +"\t\t\tgnotime-2.4.1_[12]\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:5185 +msgid "" +"The first entry match versions `2.0` through `2.3`, the second all the " +"revisions of `2.4.0`, the third the exact `2.4.1` version, and the last the " +"first and second revisions of the `2.4.1` version." +msgstr "" +"Первый элемент соответствует версиям `2.0`–`2.3`, второй — всем редакциям " +"`2.4.0`, третий — точно версии `2.4.1`, а последний — первой и второй " +"редакциям версии `2.4.1`." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:5187 +msgid "" +"package:deskutils/gnotime[] does not have any conflicts line because its " +"current version does not conflict with anything else." +msgstr "" +"package:deskutils/gnotime[] не имеет строки конфликтов, потому что его " +"текущая версия не конфликтует ни с чем другим." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:5191 +msgid "" +"The variable `DISABLE_CONFLICTS` may be temporarily set when making targets " +"that are not affected by conflicts. The variable is not to be set in port " +"Makefiles." +msgstr "" +"Переменная `DISABLE_CONFLICTS` может быть временно установлена при " +"выполнении целей, на которые не влияют конфликты. Эту переменную не следует " +"устанавливать в Makefiles портов." + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:5195 +#, no-wrap +msgid "% make -DDISABLE_CONFLICTS patch\n" +msgstr "% make -DDISABLE_CONFLICTS patch\n" + +#. type: Title == +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:5198 +#, no-wrap +msgid "Installing Files" +msgstr "Установка файлов" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:5205 +msgid "" +"The `install` phase is very important to the end user because it adds files " +"to their system. All the additional commands run in the port " +"[.filename]#Makefile#'s `*-install` targets should be echoed to the screen. " +"_Do not_ silence these commands with `@` or `.SILENT`." +msgstr "" +"Фаза `install` очень важна для конечного пользователя, так как она добавляет " +"файлы в его систему. Все дополнительные команды, выполняемые в целях `*-" +"install` [.filename]#Makefile# порта, должны выводиться на экран. _Не_ " +"заглушайте эти команды с помощью `@` или `.SILENT`." + +#. type: Title === +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:5208 +#, no-wrap +msgid "`INSTALL_*` Macros" +msgstr "Макросы `INSTALL_*`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:5215 +msgid "" +"Use the macros provided in [.filename]#bsd.port.mk# to ensure correct modes " +"of files in the port's `*-install` targets. Set ownership directly in " +"[.filename]#pkg-plist# with the corresponding entries, such as " +"`@(_owner_,_group_,)`, `@owner _owner_`, and `@group _group_`. These " +"operators work until overridden, or until the end of [.filename]#pkg-plist#, " +"so remember to reset them after they are no longer needed. The default " +"ownership is `root:wheel`. See crossref:plist[plist-keywords-base,Base " +"Keywords] for more information." +msgstr "" +"Используйте макросы, предоставленные в [.filename]#bsd.port.mk#, чтобы " +"обеспечить корректные режимы файлов в целях `*-install` порта. " +"Устанавливайте владельца напрямую в [.filename]#pkg-plist# в соответствующих " +"записях, таких как `@(_владелец_,_группа_,)`, `@owner _владелец_` и `@group " +"_группа_`. Эти операторы действуют до переопределения или до конца " +"[.filename]#pkg-plist#, поэтому не забудьте сбросить их, когда они больше не " +"нужны. Владелец по умолчанию — `root:wheel`. Дополнительную информацию см. в " +"crossref:plist[plist-keywords-base,Базовые Ключевые Слова]." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:5217 +msgid "`INSTALL_PROGRAM` is a command to install binary executables." +msgstr "`INSTALL_PROGRAM` — команда для установки бинарных исполняемых файлов." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:5218 +msgid "`INSTALL_SCRIPT` is a command to install executable scripts." +msgstr "`INSTALL_SCRIPT` — команда для установки исполняемых скриптов." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:5219 +msgid "" +"`INSTALL_LIB` is a command to install shared libraries (but not static " +"libraries)." +msgstr "" +"`INSTALL_LIB` — это команда для установки общих библиотек (но не статических " +"библиотек)." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:5220 +msgid "" +"`INSTALL_KLD` is a command to install kernel loadable modules. Some " +"architectures do not like having the modules stripped, so use this command " +"instead of `INSTALL_PROGRAM`." +msgstr "" +"`INSTALL_KLD` — это команда для установки загружаемых модулей ядра. " +"Некоторые архитектуры не поддерживают удаление символов из модулей, поэтому " +"используйте эту команду вместо `INSTALL_PROGRAM`." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:5221 +msgid "" +"`INSTALL_DATA` is a command to install sharable data, including static " +"libraries." +msgstr "" +"`INSTALL_DATA` — это команда для установки общих данных, включая статические " +"библиотеки." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:5222 +msgid "" +"`INSTALL_MAN` is a command to install manpages and other documentation (it " +"does not compress anything)." +msgstr "" +"`INSTALL_MAN` — это команда для установки man-страниц и другой документации " +"(она ничего не сжимает)." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:5224 +msgid "" +"These variables are set to the man:install[1] command with the appropriate " +"flags for each situation." +msgstr "" +"Эти переменные передаются команде man:install[1] с соответствующими флагами " +"для каждой ситуации." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:5228 +msgid "" +"Do not use `INSTALL_LIB` to install static libraries, because stripping them " +"renders them useless. Use `INSTALL_DATA` instead." +msgstr "" +"Не используйте `INSTALL_LIB` для установки статических библиотек, так как их " +"удаление делает их бесполезными. Вместо этого используйте `INSTALL_DATA`." + +#. type: Title === +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:5231 +#, no-wrap +msgid "Stripping Binaries and Shared Libraries" +msgstr "Удаление символов из бинарных файлов и разделяемых библиотек" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:5236 +msgid "" +"Installed binaries should be stripped. Do not strip binaries manually unless " +"absolutely required. The `INSTALL_PROGRAM` macro installs and strips a " +"binary at the same time. The `INSTALL_LIB` macro does the same thing to " +"shared libraries." +msgstr "" +"Установленные бинарные файлы должны быть очищены от отладочной информации. " +"Не очищайте бинарные файлы вручную, если это не является абсолютно " +"необходимым. Макрос `INSTALL_PROGRAM` устанавливает и очищает бинарный файл " +"одновременно. Макрос `INSTALL_LIB` делает то же самое с разделяемыми " +"библиотеками." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:5239 +msgid "" +"When a file must be stripped, but neither `INSTALL_PROGRAM` nor " +"`INSTALL_LIB` macros are desirable, `${STRIP_CMD}` strips the program or " +"shared library. This is typically done within the `post-install` target. " +"For example:" +msgstr "" +"Когда файл необходимо очистить, но ни макросы `INSTALL_PROGRAM`, ни " +"`INSTALL_LIB` не подходят, `${STRIP_CMD}` очищает программу или разделяемую " +"библиотеку. Обычно это делается в цели `post-install`. Например:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:5244 +#, no-wrap +msgid "" +"post-install:\n" +"\t${STRIP_CMD} ${STAGEDIR}${PREFIX}/bin/xdl\n" +msgstr "" +"post-install:\n" +"\t${STRIP_CMD} ${STAGEDIR}${PREFIX}/bin/xdl\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:5247 +msgid "When multiple files need to be stripped:" +msgstr "Когда необходимо удалить отладочную информацию из нескольких файлов:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:5254 +#, no-wrap +msgid "" +"post-install:\n" +".for l in geometry media body track world\n" +"\t${STRIP_CMD} ${STAGEDIR}${PREFIX}/lib/lib${PORTNAME}-${l}.so.0\n" +".endfor\n" +msgstr "" +"post-install:\n" +".for l in geometry media body track world\n" +"\t${STRIP_CMD} ${STAGEDIR}${PREFIX}/lib/lib${PORTNAME}-${l}.so.0\n" +".endfor\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:5259 +msgid "" +"Use man:file[1] on a file to determine if it has been stripped. Binaries " +"are reported by man:file[1] as `stripped`, or `not stripped`. Additionally, " +"man:strip[1] will detect programs that have already been stripped and exit " +"cleanly." +msgstr "" +"Используйте man:file[1] для файла, чтобы определить, был ли он подвергнут " +"удалению символов. man:file[1] сообщает, что бинарные файлы либо `stripped` " +"(удалены символы), либо `not stripped` (символы не удалены). Кроме того, " +"man:strip[1] обнаружит программы, которые уже были подвергнуты удалению " +"символов, и завершит работу без ошибок." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:5263 +msgid "When `WITH_DEBUG` is defined, elf files _must not_ be stripped." +msgstr "Когда определён `WITH_DEBUG`, elf-файлы _не должны_ быть очищены." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:5265 +msgid "" +"The variables (`STRIP_CMD`, `INSTALL_PROGRAM`, `INSTALL_LIB`, ...) and " +"crossref:uses[uses,`USES`] provided by the framework handle this " +"automatically." +msgstr "" +"Переменные (`STRIP_CMD`, `INSTALL_PROGRAM`, `INSTALL_LIB`, ...) и " +"crossref:uses[uses,`USES`], предоставляемые фреймворком, обрабатывают это " +"автоматически." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:5267 +msgid "" +"Some software, add `-s` to their `LDFLAGS`, in this case, either remove `-s` " +"if `WITH_DEBUG` is set, or remove it unconditionally and use `STRIP_CMD` in " +"`post-install`." +msgstr "" +"Некоторое программное обеспечение добавляет `-s` к своим `LDFLAGS`. В этом " +"случае либо удалите `-s`, если установлен `WITH_DEBUG`, либо удалите его " +"безусловно и используйте `STRIP_CMD` в `post-install`." + +#. type: Title === +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:5270 +#, no-wrap +msgid "Installing a Whole Tree of Files" +msgstr "Установка целого дерева файлов" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:5275 +msgid "" +"Sometimes, a large number of files must be installed while preserving their " +"hierarchical organization. For example, copying over a whole directory tree " +"from `WRKSRC` to a target directory under `PREFIX`. Note that `PREFIX`, " +"`EXAMPLESDIR`, `DATADIR`, and other path variables must always be prepended " +"with `STAGEDIR` to respect staging (see crossref:special[staging,Staging])." +msgstr "" +"Иногда необходимо установить большое количество файлов с сохранением их " +"иерархической структуры. Например, копирование всего дерева каталогов из " +"`WRKSRC` в целевой каталог под `PREFIX`. Обратите внимание, что `PREFIX`, " +"`EXAMPLESDIR`, `DATADIR` и другие переменные путей всегда должны " +"предваряться `STAGEDIR` для соблюдения процедуры промежуточной установки " +"(см. crossref:special[staging,Промежуточная установка])." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:5280 +msgid "" +"Two macros exist for this situation. The advantage of using these macros " +"instead of `cp` is that they guarantee proper file ownership and permissions " +"on target files. The first macro, `COPYTREE_BIN`, will set all the " +"installed files to be executable, thus being suitable for installing into " +"[.filename]#PREFIX/bin#. The second macro, `COPYTREE_SHARE`, does not set " +"executable permissions on files, and is therefore suitable for installing " +"files under [.filename]#PREFIX/share# target." +msgstr "" +"Для этой ситуации существуют два макроса. Преимущество использования этих " +"макросов вместо `cp` заключается в том, что они гарантируют целевым файлам " +"правильные значения владельца и разрешений. Первый макрос, `COPYTREE_BIN`, " +"устанавливает все установленные файлы как исполняемые, что делает его " +"подходящим для установки в [.filename]#PREFIX/bin#. Второй макрос, " +"`COPYTREE_SHARE#, не устанавливает исполняемые разрешения для файлов и, " +"следовательно, подходит для установки файлов в [.filename]#PREFIX/share#." + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:5286 +#, no-wrap +msgid "" +"post-install:\n" +"\t${MKDIR} ${STAGEDIR}${EXAMPLESDIR}\n" +"\t(cd ${WRKSRC}/examples && ${COPYTREE_SHARE} . ${STAGEDIR}${EXAMPLESDIR})\n" +msgstr "" +"post-install:\n" +"\t${MKDIR} ${STAGEDIR}${EXAMPLESDIR}\n" +"\t(cd ${WRKSRC}/examples && ${COPYTREE_SHARE} . ${STAGEDIR}${EXAMPLESDIR})\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:5289 +msgid "" +"This example will install the contents of the [.filename]#examples# " +"directory in the vendor distfile to the proper examples location of the port." +msgstr "" +"Этот пример установит содержимое каталога [.filename]#examples# из " +"дистрибутива вендора в соответствующее расположение примеров порта." + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:5295 +#, no-wrap +msgid "" +"post-install:\n" +"\t${MKDIR} ${STAGEDIR}${DATADIR}/summer\n" +"\t(cd ${WRKSRC}/temperatures && ${COPYTREE_SHARE} \"June July August\" ${STAGEDIR}${DATADIR}/summer)\n" +msgstr "" +"post-install:\n" +"\t${MKDIR} ${STAGEDIR}${DATADIR}/summer\n" +"\t(cd ${WRKSRC}/temperatures && ${COPYTREE_SHARE} \"June July August\" ${STAGEDIR}${DATADIR}/summer)\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:5298 +msgid "" +"And this example will install the data of summer months to the " +"[.filename]#summer# subdirectory of a [.filename]#DATADIR#." +msgstr "" +"И этот пример установит данные летних месяцев в подкаталог " +"[.filename]#summer# каталога [.filename]#DATADIR#." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:5301 +msgid "" +"Additional `find` arguments can be passed via the third argument to " +"`COPYTREE_*` macros. For example, to install all files from the first " +"example except Makefiles, one can use these commands." +msgstr "" +"Дополнительные аргументы `find` могут быть переданы через третий аргумент " +"макросов `COPYTREE_*`. Например, чтобы установить все файлы из первого " +"примера, кроме Makefiles, можно использовать следующие команды." + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:5308 +#, no-wrap +msgid "" +"post-install:\n" +"\t${MKDIR} ${STAGEDIR}${EXAMPLESDIR}\n" +"\t(cd ${WRKSRC}/examples && \\\n" +"\t${COPYTREE_SHARE} . ${STAGEDIR}${EXAMPLESDIR} \"! -name Makefile\")\n" +msgstr "" +"post-install:\n" +"\t${MKDIR} ${STAGEDIR}${EXAMPLESDIR}\n" +"\t(cd ${WRKSRC}/examples && \\\n" +"\t${COPYTREE_SHARE} . ${STAGEDIR}${EXAMPLESDIR} \"! -name Makefile\")\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:5314 +msgid "" +"These macros do not add the installed files to [.filename]#pkg-plist#. They " +"must be added manually. For optional documentation (`PORTDOCS`, see " +"crossref:makefiles[install-documentation, Install Additional Documentation]) " +"and examples (`PORTEXAMPLES`), the `%%PORTDOCS%%` or `%%PORTEXAMPLES%%` " +"prefixes must be prepended in [.filename]#pkg-plist#." +msgstr "" +"Эти макросы не добавляют установленные файлы в [.filename]#pkg-plist#. Их " +"необходимо добавлять вручную. Для дополнительной документации (`PORTDOCS`, " +"см. crossref:makefiles[install-documentation, Установка дополнительной " +"документации]) и примеров (`PORTEXAMPLES`), префиксы `%%PORTDOCS%%` или `%" +"%PORTEXAMPLES%%` должны быть добавлены в [.filename]#pkg-plist#." + +#. type: Title === +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:5316 +#, no-wrap +msgid "Install Additional Documentation" +msgstr "Установка дополнительной документации" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:5320 +msgid "" +"If the software has some documentation other than the standard man and info " +"pages that is useful for the user, install it under `DOCSDIR`. This can be " +"done, like the previous item, in the `post-install` target." +msgstr "" +"Если у программного обеспечения есть документация, помимо стандартных " +"страниц man и info, которая может быть полезна пользователю, установите её в " +"`DOCSDIR`. Это можно сделать, как и в предыдущем пункте, в цели `post-" +"install`." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:5325 +msgid "" +"Create a new directory for the port. The directory name is `DOCSDIR`. This " +"usually equals `PORTNAME`. However, if the user might want different " +"versions of the port to be installed at the same time, the whole `PKGNAME` " +"can be used." +msgstr "" +"Создайте новый каталог для порта. Имя каталога — `DOCSDIR`. Обычно оно равно " +"`PORTNAME`. Однако, если пользователю может потребоваться установка разных " +"версий порта одновременно, можно использовать полное имя `PKGNAME`." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:5328 +msgid "" +"Since only the files listed in [.filename]#pkg-plist# are installed, it is " +"safe to always install documentation to `STAGEDIR` (see " +"crossref:special[staging,Staging]). Hence `.if` blocks are only needed when " +"the installed files are large enough to cause significant I/O overhead." +msgstr "" +"Поскольку устанавливаются только файлы, перечисленные в [.filename]#pkg-" +"plist#, можно безопасно всегда устанавливать документацию в `STAGEDIR` (см. " +"crossref:special[staging,Staging]). Поэтому блоки `.if` требуются только в " +"тех случаях, когда устанавливаемые файлы достаточно велики, чтобы вызвать " +"значительные накладные расходы на ввод-вывод." + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:5334 +#, no-wrap +msgid "" +"post-install:\n" +"\t${MKDIR} ${STAGEDIR}${DOCSDIR}\n" +"\t${INSTALL_DATA} ${WRKSRC}/docs/xvdocs.ps ${STAGEDIR}${DOCSDIR}\n" +msgstr "" +"post-install:\n" +"\t${MKDIR} ${STAGEDIR}${DOCSDIR}\n" +"\t${INSTALL_DATA} ${WRKSRC}/docs/xvdocs.ps ${STAGEDIR}${DOCSDIR}\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:5338 +msgid "" +"On the other hand, if there is a DOCS option in the port, install the " +"documentation in a `post-install-DOCS-on` target. These targets are " +"described in crossref:makefiles[options-targets, Additional Build Targets, " +"`_target_-_OPT_-on` and `_target_-_OPT_-off`]." +msgstr "" +"С другой стороны, если в порте есть опция DOCS, установите документацию в " +"цели `post-install-DOCS-on`. Эти цели описаны в crossref:makefiles[options-" +"targets, Дополнительные цели сборки, `_target_-_OPT_-on` и `_target_-_OPT_-" +"off`]." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:5340 +msgid "" +"Here are some handy variables and how they are expanded by default when used " +"in the [.filename]#Makefile#:" +msgstr "" +"Вот несколько полезных переменных и их стандартное раскрытие при " +"использовании в [.filename]#Makefile#:" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:5342 +msgid "`DATADIR` gets expanded to [.filename]#PREFIX/share/PORTNAME#." +msgstr "`DATADIR` раскрывается в [.filename]#PREFIX/share/PORTNAME#." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:5343 +msgid "`DATADIR_REL` gets expanded to [.filename]#share/PORTNAME#." +msgstr "`DATADIR_REL` раскрывается в [.filename]#share/PORTNAME#." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:5344 +msgid "`DOCSDIR` gets expanded to [.filename]#PREFIX/share/doc/PORTNAME#." +msgstr "`DOCSDIR` раскрывается в [.filename]#PREFIX/share/doc/PORTNAME#." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:5345 +msgid "`DOCSDIR_REL` gets expanded to [.filename]#share/doc/PORTNAME#." +msgstr "`DOCSDIR_REL` раскрывается в [.filename]#share/doc/PORTNAME#." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:5346 +msgid "" +"`EXAMPLESDIR` gets expanded to [.filename]#PREFIX/share/examples/PORTNAME#." +msgstr "" +"`EXAMPLESDIR` раскрывается в [.filename]#PREFIX/share/examples/PORTNAME#." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:5347 +msgid "" +"`EXAMPLESDIR_REL` gets expanded to [.filename]#share/examples/PORTNAME#." +msgstr "`EXAMPLESDIR_REL` раскрывается в [.filename]#share/examples/PORTNAME#." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:5353 +msgid "" +"The `DOCS` option only controls additional documentation installed in " +"`DOCSDIR`. It does not apply to standard man pages and info pages. Things " +"installed in `EXAMPLESDIR` are controlled by the `EXAMPLES` option." +msgstr "" +"Опция `DOCS` управляет только дополнительной документацией, устанавливаемой " +"в `DOCSDIR`. Она не применяется к стандартным man-страницам и info-" +"страницам. Содержимое, устанавливаемое в `EXAMPLESDIR`, контролируется " +"опцией `EXAMPLES`." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:5359 +msgid "" +"These variables are exported to `PLIST_SUB`. Their values will appear there " +"as pathnames relative to [.filename]#PREFIX# if possible. That is, " +"[.filename]#share/doc/PORTNAME# will be substituted for `%%DOCSDIR%%` in the " +"packing list by default, and so on. (See more on [.filename]#pkg-plist# " +"substitution crossref:plist[plist-sub,here].)" +msgstr "" +"Эти переменные экспортируются в `PLIST_SUB`. Их значения будут представлены " +"там в виде путей относительно [.filename]#PREFIX#, если это возможно. То " +"есть, [.filename]#share/doc/PORTNAME# будет заменено на `%%DOCSDIR%%` в " +"списке упаковки по умолчанию и так далее. (Подробнее о подстановках в " +"[.filename]#pkg-plist# см. crossref:plist[plist-sub,здесь].)" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:5361 +msgid "" +"All conditionally installed documentation files and directories are included " +"in [.filename]#pkg-plist# with the `%%PORTDOCS%%` prefix, for example:" +msgstr "" +"Все условно устанавливаемые файлы и каталоги документации включаются в " +"[.filename]#pkg-plist# с префиксом `%%PORTDOCS%%`, например:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:5366 +#, no-wrap +msgid "" +"%%PORTDOCS%%%%DOCSDIR%%/AUTHORS\n" +"%%PORTDOCS%%%%DOCSDIR%%/CONTACT\n" +msgstr "" +"%%PORTDOCS%%%%DOCSDIR%%/AUTHORS\n" +"%%PORTDOCS%%%%DOCSDIR%%/CONTACT\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:5375 +msgid "" +"As an alternative to enumerating the documentation files in [.filename]#pkg-" +"plist#, a port can set the variable `PORTDOCS` to a list of file names and " +"shell glob patterns to add to the final packing list. The names will be " +"relative to `DOCSDIR`. Therefore, a port that utilizes `PORTDOCS`, and uses " +"a non-default location for its documentation, must set `DOCSDIR` " +"accordingly. If a directory is listed in `PORTDOCS` or matched by a glob " +"pattern from this variable, the entire subtree of contained files and " +"directories will be registered in the final packing list. If the `DOCS` " +"option has been unset then files and directories listed in `PORTDOCS` would " +"not be installed or added to port packing list. Installing the " +"documentation at `PORTDOCS` as shown above remains up to the port itself. A " +"typical example of utilizing `PORTDOCS`:" +msgstr "" +"В качестве альтернативы перечислению файлов документации в [.filename]#pkg-" +"plist#, порт может установить переменную `PORTDOCS` в список имён файлов и " +"шаблонов имен файлов shell для добавления в итоговый список упаковки. Имена " +"будут относительны к `DOCSDIR`. Поэтому порт, использующий `PORTDOCS` и " +"нестандартное расположение документации, должен соответствующим образом " +"установить `DOCSDIR`. Если в `PORTDOCS` указан каталог или он соответствует " +"шаблону из этой переменной, всё поддерево содержащихся файлов и каталогов " +"будет зарегистрировано в итоговом списке упаковки. Если опция `DOCS` " +"отключена, файлы и каталоги, перечисленные в `PORTDOCS`, не будут " +"установлены или добавлены в список упаковки порта. Установка документации в " +"`PORTDOCS`, как показано выше, остаётся на усмотрение самого порта. Типичный " +"пример использования `PORTDOCS`:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:5379 +#, no-wrap +msgid "PORTDOCS=\tREADME.* ChangeLog docs/*\n" +msgstr "PORTDOCS=\tREADME.* ChangeLog docs/*\n" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:5384 +msgid "" +"The equivalents of `PORTDOCS` for files installed under `DATADIR` and " +"`EXAMPLESDIR` are `PORTDATA` and `PORTEXAMPLES`, respectively." +msgstr "" +"Эквивалентами `PORTDOCS` для файлов, установленных в `DATADIR` и " +"`EXAMPLESDIR`, являются `PORTDATA` и `PORTEXAMPLES` соответственно." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:5388 +msgid "" +"The contents of [.filename]#pkg-message# are displayed upon installation. " +"See crossref:pkg-files[porting-message,the section on using [.filename]#pkg-" +"message#] for details. [.filename]#pkg-message# does not need to be added " +"to [.filename]#pkg-plist#." +msgstr "" +"Содержимое файла [.filename]#pkg-message# отображается при установке. " +"Подробности см. в разделе crossref:pkg-files[porting-message,использование " +"файла [.filename]#pkg-message#]. Файл [.filename]#pkg-message# не нужно " +"добавлять в [.filename]#pkg-plist#." + +#. type: Title === +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:5391 +#, no-wrap +msgid "Subdirectories Under `PREFIX`" +msgstr "Подкаталоги в `PREFIX`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:5400 +msgid "" +"Try to let the port put things in the right subdirectories of `PREFIX`. " +"Some ports lump everything and put it in the subdirectory with the port's " +"name, which is incorrect. Also, many ports put everything except binaries, " +"header files and manual pages in a subdirectory of [.filename]#lib#, which " +"does not work well with the BSD paradigm. Many of the files must be moved " +"to one of these directories: [.filename]#etc# (setup/configuration files), " +"[.filename]#libexec# (executables started internally), [.filename]#sbin# " +"(executables for superusers/managers), [.filename]#info# (documentation for " +"info browser) or [.filename]#share# (architecture independent files). See " +"man:hier[7] for details; the rules governing [.filename]#/usr# pretty much " +"apply to [.filename]#/usr/local# too. The exception are ports dealing with " +"USENET \"news\". They may use [.filename]#PREFIX/news# as a destination for " +"their files." +msgstr "" +"Попробуйте сделать так, чтобы порт размещал файлы в правильных подкаталогах " +"`PREFIX`. Некоторые порты собирают всё в кучу и помещают в подкаталог с " +"именем порта, что неверно. Также многие порты размещают все файлы, кроме " +"бинарников, заголовочных файлов и страниц руководства, в подкаталоге " +"[.filename]#lib#, что плохо согласуется с парадигмой BSD. Многие из этих " +"файлов должны быть перемещены в один из следующих каталогов: " +"[.filename]#etc# (файлы настройки/конфигурации), [.filename]#libexec# " +"(исполняемые файлы для внутреннего использования), [.filename]#sbin# " +"(исполняемые файлы для суперпользователей/администраторов), " +"[.filename]#info# (документация для браузера info) или [.filename]#share# " +"(архитектурно-независимые файлы). Подробности см. в man:hier[7]; правила, " +"действующие для [.filename]#/usr#, в основном применимы и к [.filename]#/usr/" +"local#. Исключение составляют порты, связанные с USENET \"news\". Они могут " +"использовать [.filename]#PREFIX/news# в качестве места назначения для своих " +"файлов." + +#. type: Title == +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:5402 +#, no-wrap +msgid "Use `BINARY_ALIAS` to Rename Commands Instead of Patching the Build" +msgstr "Используйте `BINARY_ALIAS` для переименования команд вместо исправления сборки" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:5405 +msgid "" +"When `BINARY_ALIAS` is defined it will create symlinks of the given commands " +"in a directory which will be prepended to `PATH`." +msgstr "" +"Когда определена переменная `BINARY_ALIAS`, будут созданы символьные ссылки " +"на указанные команды в каталоге, который будет добавлен в начало переменной " +"`PATH`." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:5407 +msgid "" +"Use it to substitute hardcoded commands the build phase relies on without " +"having to patch any build files." +msgstr "" +"Используйте это для замены жёстко заданных команд, от которых зависит этап " +"сборки, без необходимости исправлять какие-либо файлы сборки." + +#. type: Block title +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:5409 +#, no-wrap +msgid "Using `BINARY_ALIAS` to Make `gsed` Available as `sed`" +msgstr "Использование `BINARY_ALIAS` для предоставления `gsed` в качестве `sed`" + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:5414 +msgid "" +"Some ports expect `sed` to behave like GNU sed and use features that " +"man:sed[1] does not provide. GNU sed is available from package:textproc/" +"gsed[] on FreeBSD." +msgstr "" +"Некоторые порты ожидают, что `sed` будет вести себя как GNU sed и используют " +"возможности, которые man:sed[1] не предоставляет. GNU sed доступен в пакете " +"package:textproc/gsed[] на FreeBSD." + +#. type: delimited block = 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:5416 +msgid "" +"Use `BINARY_ALIAS` to substitute `sed` with `gsed` for the duration of the " +"build:" +msgstr "Используйте `BINARY_ALIAS` для замены `sed` на `gsed` на время сборки:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:5422 +#, no-wrap +msgid "" +"BUILD_DEPENDS=\tgsed:textproc/gsed\n" +"...\n" +"BINARY_ALIAS=\tsed=gsed\n" +msgstr "" +"BUILD_DEPENDS=\tgsed:textproc/gsed\n" +"...\n" +"BINARY_ALIAS=\tsed=gsed\n" + +#. type: Block title +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:5427 +#, no-wrap +msgid "Using `BINARY_ALIAS` to Provide Aliases for Hardcoded `python3` Commands" +msgstr "Использование `BINARY_ALIAS` для создания псевдонимов жестко заданных команд `python3`" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:5432 +msgid "" +"A port that has a hardcoded reference to `python3` in its build scripts will " +"need to have it available in `PATH` at build time. Use `BINARY_ALIAS` to " +"create an alias that points to the right Python 3 binary:" +msgstr "" +"Порт, в котором есть жёсткая ссылка на `python3` в скриптах сборки, требует " +"его наличия в `PATH` во время сборки. Используйте `BINARY_ALIAS` для " +"создания псевдонима, указывающего на нужный бинарный файл Python 3:" + +#. type: delimited block . 4 +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:5438 +#, no-wrap +msgid "" +"USES=\tpython:3.4+,build\n" +"...\n" +"BINARY_ALIAS=\tpython3=${PYTHON_CMD}\n" +msgstr "" +"USES=\tpython:3.4+,build\n" +"...\n" +"BINARY_ALIAS=\tpython3=${PYTHON_CMD}\n" + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:5441 +msgid "" +"See crossref:special[using-python,Using Python] for more information about " +"`USES=python`." +msgstr "" +"См. crossref:special[using-python,Использование Python] для получения " +"дополнительной информации о `USES=python`." + +#. type: Plain text +#: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:5448 +msgid "" +"Binary aliases are created after the dependencies provided via " +"`BUILD_DEPENDS` and `LIB_DEPENDS` are processed and before the `configure` " +"target. This leads to various limitations. For example, programs installed " +"via `TEST_DEPENDS` cannot be used to create a binary alias as test " +"dependencies specified this way are processed after binary aliases are " +"created." +msgstr "" +"Бинарные псевдонимы создаются после обработки зависимостей, указанных через " +"`BUILD_DEPENDS` и `LIB_DEPENDS`, но до цели `configure`. Это приводит к " +"различным ограничениям. Например, программы, установленные через " +"`TEST_DEPENDS`, нельзя использовать для создания бинарного псевдонима, так " +"как тестовые зависимости, указанные таким образом, обрабатываются после " +"создания бинарных псевдонимов." |