Path: blob/main/documentation/content/ru/books/porters-handbook/makefiles/_index.po
18099 views
# SOME DESCRIPTIVE TITLE # Copyright (C) YEAR The FreeBSD Project # This file is distributed under the same license as the FreeBSD Documentation package. # Vladlen Popolitov <[email protected]>, 2025, 2026. msgid "" msgstr "" "Project-Id-Version: FreeBSD Documentation VERSION\n" "POT-Creation-Date: 2026-02-22 15:58+0000\n" "PO-Revision-Date: 2026-04-05 04:45+0000\n" "Last-Translator: Vladlen Popolitov <[email protected]>\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: 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: 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:128 #, no-wrap msgid "" "% pkg version -t 1.2 1.3\n" " < <.>\n" "% pkg version -t 1.2 1.2\n" " = <.>\n" "% pkg version -t 1.2 1.2.0\n" " = <.>\n" "% 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" " < <.>\n" msgstr "" "% pkg version -t 1.2 1.3\n" " < <.>\n" "% pkg version -t 1.2 1.2\n" " = <.>\n" "% pkg version -t 1.2 1.2.0\n" " = <.>\n" "% 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" " < <.>\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:4870 #, 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:1481 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1890 #, 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]#budgie#`*`" msgstr "[.filename]#budgie#`*`" #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:684 #, no-wrap msgid "Software related to the Budgie desktop environment." msgstr "Программное обеспечение, связанное со средой рабочего стола Budgie." #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:687 #, no-wrap msgid "[.filename]#cad#" msgstr "[.filename]#cad#" #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:688 #, no-wrap msgid "Computer aided design tools." msgstr "Компьютерные средства автоматизированного проектирования." #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:691 #, no-wrap msgid "[.filename]#chinese#" msgstr "[.filename]#chinese#" #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:692 #, no-wrap msgid "Chinese language support." msgstr "Поддержка китайского языка." #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:695 #, no-wrap msgid "[.filename]#comms#" msgstr "[.filename]#comms#" #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:696 #, no-wrap msgid "Communication software." msgstr "Программное обеспечение для связи." #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:698 #, no-wrap msgid "Mostly software to talk to the serial port." msgstr "В основном программное обеспечение для работы с последовательным портом." #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:699 #, no-wrap msgid "[.filename]#converters#" msgstr "[.filename]#converters#" #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:700 #, no-wrap msgid "Character code converters." msgstr "Преобразователи символьных кодировок." #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:703 #, no-wrap msgid "[.filename]#databases#" msgstr "[.filename]#databases#" #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:704 #, no-wrap msgid "Databases." msgstr "Базы данных." #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:707 #, no-wrap msgid "[.filename]#deskutils#" msgstr "[.filename]#deskutils#" #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:708 #, 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:711 #, no-wrap msgid "[.filename]#devel#" msgstr "[.filename]#devel#" #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:712 #, no-wrap msgid "Development utilities." msgstr "Средства разработки." #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:714 #, 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:715 #, no-wrap msgid "[.filename]#dns#" msgstr "[.filename]#dns#" #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:716 #, no-wrap msgid "DNS-related software." msgstr "Программное обеспечение, связанное с DNS." #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:719 #, no-wrap msgid "[.filename]#docs#`*`" msgstr "[.filename]#docs#`*`" #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:720 #, no-wrap msgid "Meta-ports for FreeBSD documentation." msgstr "Мета-порты для документации FreeBSD." #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:723 #, no-wrap msgid "[.filename]#editors#" msgstr "[.filename]#editors#" #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:724 #, no-wrap msgid "General editors." msgstr "Общие редакторы." #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:726 #, 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:727 #, no-wrap msgid "[.filename]#education#`*`" msgstr "[.filename]#education#`*`" #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:728 #, no-wrap msgid "Education-related software." msgstr "Программное обеспечение для образования." #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:730 #, 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:731 #, no-wrap msgid "[.filename]#elisp#`*`" msgstr "[.filename]#elisp#`*`" #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:732 #, no-wrap msgid "Emacs-lisp ports." msgstr "Порты Emacs-lisp." #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:735 #, no-wrap msgid "[.filename]#emulators#" msgstr "[.filename]#emulators#" #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:736 #, no-wrap msgid "Emulators for other operating systems." msgstr "Эмуляторы других операционных систем." #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:738 #, 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:739 #, no-wrap msgid "[.filename]#enlightenment#`*`" msgstr "[.filename]#enlightenment#`*`" #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:740 #, no-wrap msgid "Ports related to the Enlightenment window manager." msgstr "Порты, связанные с оконным менеджером Enlightenment." #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:743 #, no-wrap msgid "[.filename]#filesystems#" msgstr "[.filename]#filesystems#" #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:744 #, no-wrap msgid "File systems and related utilities." msgstr "Файловые системы и связанные утилиты." #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:747 #, no-wrap msgid "[.filename]#finance#" msgstr "[.filename]#finance#" #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:748 #, no-wrap msgid "Monetary, financial and related applications." msgstr "Монетарные, финансовые и связанные с ними приложения." #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:751 #, no-wrap msgid "[.filename]#french#" msgstr "[.filename]#french#" #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:752 #, no-wrap msgid "French language support." msgstr "Поддержка французского языка." #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:755 #, no-wrap msgid "[.filename]#ftp#" msgstr "[.filename]#ftp#" #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:756 #, no-wrap msgid "FTP client and server utilities." msgstr "Клиентские и серверные утилиты FTP." #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:758 #, 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:759 #, no-wrap msgid "[.filename]#games#" msgstr "[.filename]#games#" #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:760 #, no-wrap msgid "Games." msgstr "Игры." #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:763 #, no-wrap msgid "[.filename]#geography#`*`" msgstr "[.filename]#география#`*`" #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:764 #, no-wrap msgid "Geography-related software." msgstr "Программное обеспечение, связанное с географией." #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:767 #, no-wrap msgid "[.filename]#german#" msgstr "[.filename]#german#" #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:768 #, no-wrap msgid "German language support." msgstr "Поддержка немецкого языка." #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:771 #, no-wrap msgid "[.filename]#gnome#`*`" msgstr "[.filename]#gnome#`*`" #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:772 #, 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:775 #, no-wrap msgid "[.filename]#gnustep#`*`" msgstr "[.filename]#gnustep#`*`" #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:776 #, no-wrap msgid "Software related to the GNUstep desktop environment." msgstr "Программное обеспечение, связанное со средой рабочего стола GNUstep." #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:779 #, no-wrap msgid "[.filename]#graphics#" msgstr "[.filename]#graphics#" #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:780 #, no-wrap msgid "Graphics utilities." msgstr "Графические утилиты." #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:783 #, no-wrap msgid "[.filename]#hamradio#`*`" msgstr "[.filename]#hamradio#`*`" #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:784 #, no-wrap msgid "Software for amateur radio." msgstr "Программное обеспечение для радиолюбителей." #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:787 #, no-wrap msgid "[.filename]#haskell#`*`" msgstr "[.filename]#haskell#`*`" #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:788 #, no-wrap msgid "Software related to the Haskell language." msgstr "Программное обеспечение, связанное с языком Haskell." #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:791 #, no-wrap msgid "[.filename]#hebrew#" msgstr "[.filename]#hebrew#" #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:792 #, no-wrap msgid "Hebrew language support." msgstr "Поддержка иврита." #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:795 #, no-wrap msgid "[.filename]#hungarian#" msgstr "[.filename]#hungarian#" #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:796 #, no-wrap msgid "Hungarian language support." msgstr "Венгерская языковая поддержка." #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:799 #, no-wrap msgid "[.filename]#irc#" msgstr "[.filename]#irc#" #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:800 #, no-wrap msgid "Internet Relay Chat utilities." msgstr "Утилиты Internet Relay Chat." #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:803 #, no-wrap msgid "[.filename]#japanese#" msgstr "[.filename]#japanese#" #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:804 #, no-wrap msgid "Japanese language support." msgstr "Поддержка японского языка." #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:807 #, no-wrap msgid "[.filename]#java#" msgstr "[.filename]#java#" #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:808 #, no-wrap msgid "Software related to the Java(TM) language." msgstr "Программное обеспечение, связанное с языком Java(TM)." #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:810 #, 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:811 #, no-wrap msgid "[.filename]#kde#`*`" msgstr "[.filename]#kde#`*`" #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:812 #, 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:815 #, no-wrap msgid "[.filename]#kde-applications#`*`" msgstr "[.filename]#kde-приложения#`*`" #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:816 #, 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:819 #, no-wrap msgid "[.filename]#kde-frameworks#`*`" msgstr "[.filename]#kde-frameworks#`*`" #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:820 #, 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:823 #, no-wrap msgid "[.filename]#kde-plasma#`*`" msgstr "[.filename]#kde-plasma#`*`" #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:824 #, 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:827 #, no-wrap msgid "[.filename]#kld#`*`" msgstr "[.filename]#kld#`*`" #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:828 #, no-wrap msgid "Kernel loadable modules." msgstr "Загружаемые модули ядра." #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:831 #, no-wrap msgid "[.filename]#korean#" msgstr "[.filename]#korean#" #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:832 #, no-wrap msgid "Korean language support." msgstr "Поддержка корейского языка." #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:835 #, no-wrap msgid "[.filename]#lang#" msgstr "[.filename]#lang#" #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:836 #, no-wrap msgid "Programming languages." msgstr "Языки программирования." #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:839 #, no-wrap msgid "[.filename]#linux#`*`" msgstr "[.filename]#linux#`*`" #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:840 #, no-wrap msgid "Linux applications and support utilities." msgstr "Приложения и вспомогательные утилиты Linux." #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:843 #, no-wrap msgid "[.filename]#lisp#`*`" msgstr "[.filename]#lisp#`*`" #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:844 #, no-wrap msgid "Software related to the Lisp language." msgstr "Программное обеспечение, связанное с языком Lisp." #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:847 #, no-wrap msgid "[.filename]#mail#" msgstr "[.filename]#mail#" #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:848 #, no-wrap msgid "Mail software." msgstr "Почтовое программное обеспечение." #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:851 #, no-wrap msgid "[.filename]#mate#`*`" msgstr "[.filename]#mate#`*`" #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:852 #, 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:855 #, no-wrap msgid "[.filename]#math#" msgstr "[.filename]#math#" #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:856 #, no-wrap msgid "Numerical computation software and other utilities for mathematics." msgstr "Численные расчеты и другие математические утилиты." #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:859 #, no-wrap msgid "[.filename]#mbone#`*`" msgstr "[.filename]#mbone#`*`" #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:860 #, no-wrap msgid "MBone applications." msgstr "Приложения MBone." #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:863 #, no-wrap msgid "[.filename]#misc#" msgstr "[.filename]#misc#" #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:864 #, no-wrap msgid "Miscellaneous utilities" msgstr "Различные утилиты" #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:866 #, 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:867 #, no-wrap msgid "[.filename]#multimedia#" msgstr "[.filename]#multimedia#" #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:868 #, no-wrap msgid "Multimedia software." msgstr "Мультимедийное программное обеспечение." #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:871 #, no-wrap msgid "[.filename]#net#" msgstr "[.filename]#net#" #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:872 #, no-wrap msgid "Miscellaneous networking software." msgstr "Различное сетевое программное обеспечение." #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:875 #, no-wrap msgid "[.filename]#net-im#" msgstr "[.filename]#net-im#" #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:876 #, no-wrap msgid "Instant messaging software." msgstr "Программное обеспечение для обмена мгновенными сообщениями." #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:879 #, no-wrap msgid "[.filename]#net-mgmt#" msgstr "[.filename]#net-mgmt#" #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:880 #, no-wrap msgid "Networking management software." msgstr "Программное обеспечение для управления сетями." #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:883 #, no-wrap msgid "[.filename]#net-p2p#" msgstr "[.filename]#net-p2p#" #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:884 #, no-wrap msgid "Peer to peer network applications." msgstr "Одноранговые сетевые приложения." #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:887 #, no-wrap msgid "[.filename]#net-vpn#`*`" msgstr "[.filename]#сеть-vpn#`*`" #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:888 #, no-wrap msgid "Virtual Private Network applications." msgstr "Виртуальные частные сети." #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:891 #, no-wrap msgid "[.filename]#news#" msgstr "[.filename]#news#" #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:892 #, no-wrap msgid "USENET news software." msgstr "Программное обеспечение для USENET-новостей." #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:895 #, no-wrap msgid "[.filename]#parallel#`*`" msgstr "[.filename]#parallel#`*`" #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:896 #, no-wrap msgid "Applications dealing with parallelism in computing." msgstr "Приложения, работающие с параллелизмом в вычислениях." #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:899 #, no-wrap msgid "[.filename]#pear#`*`" msgstr "[.filename]#pear#`*`" #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:900 #, no-wrap msgid "Ports related to the Pear PHP framework." msgstr "Порты, связанные с PHP-фреймворком Pear." #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:903 #, no-wrap msgid "[.filename]#perl5#`*`" msgstr "[.filename]#perl5#`*`" #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:904 #, 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:907 #, no-wrap msgid "[.filename]#plan9#`*`" msgstr "[.filename]#plan9#`*`" #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:908 #, 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:911 #, no-wrap msgid "[.filename]#polish#" msgstr "[.filename]#polish#" #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:912 #, no-wrap msgid "Polish language support." msgstr "Поддержка польского языка." #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:915 #, no-wrap msgid "[.filename]#ports-mgmt#" msgstr "[.filename]#ports-mgmt#" #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:916 #, 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:919 #, no-wrap msgid "[.filename]#portuguese#" msgstr "[.filename]#portuguese#" #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:920 #, no-wrap msgid "Portuguese language support." msgstr "Поддержка португальского языка." #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:923 #, no-wrap msgid "[.filename]#print#" msgstr "[.filename]#print#" #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:924 #, no-wrap msgid "Printing software." msgstr "Программное обеспечение для печати." #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:926 #, no-wrap msgid "Desktop publishing tools (previewers, etc.) belong here too." msgstr "Инструменты для настольных издательских систем (превьюеры и т. д.) также относятся сюда." #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:927 #, no-wrap msgid "[.filename]#python#`*`" msgstr "[.filename]#python#`*`" #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:928 #, 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:931 #, no-wrap msgid "[.filename]#ruby#`*`" msgstr "[.filename]#ruby#`*`" #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:932 #, 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:935 #, no-wrap msgid "[.filename]#rubygems#`*`" msgstr "[.filename]#rubygems#`*`" #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:936 #, 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:939 #, no-wrap msgid "[.filename]#russian#" msgstr "[.filename]#russian#" #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:940 #, no-wrap msgid "Russian language support." msgstr "Поддержка русского языка." #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:943 #, no-wrap msgid "[.filename]#scheme#`*`" msgstr "[.filename]#scheme#`*`" #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:944 #, no-wrap msgid "Software related to the Scheme language." msgstr "Программное обеспечение, связанное с языком Scheme." #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:947 #, no-wrap msgid "[.filename]#science#" msgstr "[.filename]#science#" #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:948 #, 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:951 #, no-wrap msgid "[.filename]#security#" msgstr "[.filename]#security#" #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:952 #, no-wrap msgid "Security utilities." msgstr "Средства обеспечения безопасности." #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:955 #, no-wrap msgid "[.filename]#shells#" msgstr "[.filename]#shells#" #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:956 #, no-wrap msgid "Command line shells." msgstr "Командные оболочки." #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:959 #, no-wrap msgid "[.filename]#spanish#`*`" msgstr "[.filename]#spanish#`*`" #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:960 #, no-wrap msgid "Spanish language support." msgstr "Поддержка испанского языка." #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:963 #, no-wrap msgid "[.filename]#sysutils#" msgstr "[.filename]#sysutils#" #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:964 #, no-wrap msgid "System utilities." msgstr "Системные утилиты." #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:967 #, no-wrap msgid "[.filename]#tcl#`*`" msgstr "[.filename]#tcl#`*`" #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:968 #, no-wrap msgid "Ports that use Tcl to run." msgstr "Порты, использующие Tcl для запуска." #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:971 #, no-wrap msgid "[.filename]#textproc#" msgstr "[.filename]#textproc#" #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:972 #, no-wrap msgid "Text processing utilities." msgstr "Средства обработки текста." #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:974 #, 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:975 #, no-wrap msgid "[.filename]#tk#`*`" msgstr "[.filename]#tk#`*`" #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:976 #, no-wrap msgid "Ports that use Tk to run." msgstr "Порты, использующие Tk для работы." #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:979 #, no-wrap msgid "[.filename]#ukrainian#" msgstr "[.filename]#ukrainian#" #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:980 #, no-wrap msgid "Ukrainian language support." msgstr "Поддержка украинского языка." #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:983 #, no-wrap msgid "[.filename]#vietnamese#" msgstr "[.filename]#vietnamese#" #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:984 #, no-wrap msgid "Vietnamese language support." msgstr "Поддержка вьетнамского языка." #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:987 #, no-wrap msgid "[.filename]#wayland#`*`" msgstr "[.filename]#wayland#`*`" #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:988 #, no-wrap msgid "Ports to support the Wayland display server." msgstr "Порты для поддержки сервера дисплея Wayland." #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:991 #, no-wrap msgid "[.filename]#windowmaker#`*`" msgstr "[.filename]#windowmaker#`*`" #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:992 #, 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:995 #, no-wrap msgid "[.filename]#www#" msgstr "[.filename]#www#" #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:996 #, no-wrap msgid "Software related to the World Wide Web." msgstr "Программное обеспечение, связанное с Всемирной паутиной." #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:998 #, no-wrap msgid "HTML language support belongs here too." msgstr "Поддержка языка HTML также относится сюда." #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:999 #, no-wrap msgid "[.filename]#x11#" msgstr "[.filename]#x11#" #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1000 #, no-wrap msgid "The X Window System and friends." msgstr "Система X Window и связанные компоненты." #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1002 #, 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:1003 #, no-wrap msgid "[.filename]#x11-clocks#" msgstr "[.filename]#x11-clocks#" #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1004 #, no-wrap msgid "X11 clocks." msgstr "Часы X11." #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1007 #, no-wrap msgid "[.filename]#x11-drivers#" msgstr "[.filename]#x11-drivers#" #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1008 #, no-wrap msgid "X11 drivers." msgstr "Драйверы X11." #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1011 #, no-wrap msgid "[.filename]#x11-fm#" msgstr "[.filename]#x11-fm#" #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1012 #, no-wrap msgid "X11 file managers." msgstr "Менеджеры файлов X11." #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1015 #, no-wrap msgid "[.filename]#x11-fonts#" msgstr "[.filename]#x11-fonts#" #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1016 #, no-wrap msgid "X11 fonts and font utilities." msgstr "Шрифты и утилиты для работы со шрифтами в X11." #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1019 #, no-wrap msgid "[.filename]#x11-servers#" msgstr "[.filename]#x11-servers#" #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1020 #, no-wrap msgid "X11 servers." msgstr "Серверы X11." #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1023 #, no-wrap msgid "[.filename]#x11-themes#" msgstr "[.filename]#x11-themes#" #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1024 #, no-wrap msgid "X11 themes." msgstr "Темы X11." #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1027 #, no-wrap msgid "[.filename]#x11-toolkits#" msgstr "[.filename]#x11-toolkits#" #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1028 #, no-wrap msgid "X11 toolkits." msgstr "Инструментарии X11." #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1031 #, no-wrap msgid "[.filename]#x11-wm#" msgstr "[.filename]#x11-wm#" #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1032 #, no-wrap msgid "X11 window managers." msgstr "Оконные менеджеры X11." #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1035 #, no-wrap msgid "[.filename]#xfce#`*`" msgstr "[.filename]#xfce#`*`" #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1036 #, 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:1039 #, no-wrap msgid "[.filename]#zope#`*`" msgstr "[.filename]#zope#`*`" #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1040 #, 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:1044 #, no-wrap msgid "Choosing the Right Category" msgstr "Выбор подходящей категории" #. type: Plain text #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1049 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:1052 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:1053 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:1054 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:1055 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:1056 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:1057 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:1058 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:1059 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:1063 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:1065 #, no-wrap msgid "Proposing a New Category" msgstr "Предложение новой категории" #. type: Plain text #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1070 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:1072 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:1076 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:1078 msgid "Here is the procedure:" msgstr "Вот процедура:" #. type: Plain text #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1082 msgid "" "Propose the new category on {freebsd-ports}. Include a detailed rationale " "for the new category, including why the existing categories are not" msgstr "" "Предложите новую категорию на {freebsd-ports}. Включите подробное " "обоснование для новой категории, объясните, почему существующие категории " "недостаточны, и укажите список существующих портов, предлагаемых к " "перемещению." #. type: Plain text #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1085 msgid "" "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.) " "Indicating that the updater is also the maintainer or submitter may be " "helpful to the case." msgstr "" "(Если в Bugzilla есть ожидающие рассмотрения новые порты, которые подходят " "под эту категорию, также перечислите их.) Если вы являетесь сопровождающим " "или подающим предложение, укажите это, так как это может помочь в " "рассмотрении." #. type: Plain text #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1086 msgid "Participate in the discussion." msgstr "Участвуйте в обсуждении." #. type: Plain text #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1087 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:1089 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:1090 msgid "[.filename]#Makefile# for the new category" msgstr "[.filename]#Makefile# для новой категории" #. type: Plain text #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1091 msgid "[.filename]#Makefile# for the old ports' categories" msgstr "[.filename]#Makefile# для старых категорий портов" #. type: Plain text #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1092 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:1093 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:1095 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:1096 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:1099 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:1101 #, no-wrap msgid "Proposing Reorganizing All the Categories" msgstr "Предложение о реорганизации всех категорий" #. type: Plain text #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1107 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:1109 #, no-wrap msgid "The Distribution Files" msgstr "Файлы дистрибутива" #. type: Plain text #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1112 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:1114 #, no-wrap msgid "`DISTNAME`" msgstr "`DISTNAME`" #. type: Plain text #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1121 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:1124 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:1129 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:1133 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 created variable and set `DISTNAME` accordingly." msgstr "" "Если схема версий исходного проекта может быть преобразована в схему, " "совместимую с портами, установите некоторую переменную в версию исходного " "проекта, _не используйте_ имя переменной `DISTVERSION`. Установите " "`PORTVERSION` в вычисленную версию на основе созданной переменной и задайте " "`DISTNAME` соответствующим образом." #. type: Plain text #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1135 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:1137 #, no-wrap msgid "Deriving `PORTVERSION` Manually" msgstr "Получение `PORTVERSION` вручную" #. type: delimited block = 4 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1143 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:1145 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:1152 #, 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:1155 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:1156 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:1158 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:1167 #, 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:1171 #, no-wrap msgid "" "MAINTAINER=\[email protected]\n" "COMMENT=\tBIND DNS suite with updated DNSSEC and DNS64\n" "WWW=\t\thttps://www.isc.org/bind/\n" msgstr "" "MAINTAINER=\[email protected]\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:1173 #, no-wrap msgid "LICENSE=\tISCL\n" msgstr "LICENSE=\tISCL\n" #. type: delimited block . 4 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1176 #, 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:1182 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:1185 #, no-wrap msgid "Derive `DISTNAME` from `PORTVERSION`" msgstr "Получить `DISTNAME` из `PORTVERSION`" #. type: Plain text #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1189 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:1191 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:1199 #, 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:1203 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:1206 #, no-wrap msgid "Exotic Case 1" msgstr "Экзотический случай 1" #. type: Plain text #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1210 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:1212 msgid "From package:audio/libworkman[]:" msgstr "Из пакета package:audio/libworkman[]:" #. type: delimited block . 4 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1220 #, 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:1225 #, no-wrap msgid "Exotic Case 2" msgstr "Экзотический случай 2" #. type: Plain text #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1230 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:1239 #, 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:1247 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:1250 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4900 #, no-wrap msgid "`MASTER_SITES`" msgstr "`MASTER_SITES`" #. type: delimited block = 4 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1254 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:1256 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:1259 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:1267 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:1270 #, no-wrap msgid "Using `MASTER_SITE_*` Variables" msgstr "Использование переменных `MASTER_SITE_*`" #. type: delimited block = 4 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1273 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:1277 #, 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:1281 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:1286 #, 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:1290 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:1295 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:1299 #, no-wrap msgid "MASTER_SITES=\tFOO\n" msgstr "MASTER_SITES=\tFOO\n" #. type: Plain text #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1302 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:1306 #, 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:1313 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:1315 #, no-wrap msgid "Shortcuts for `MASTER_SITE_*` Macros" msgstr "Сокращения для макросов `MASTER_SITE_*`" #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1319 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1377 #, no-wrap msgid "Macro" msgstr "Макрос" #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1321 #, no-wrap msgid "Shortcut" msgstr "Сокращение" #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1322 #, no-wrap msgid "`PERL_CPAN`" msgstr "`PERL_CPAN`" #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1324 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1395 #, no-wrap msgid "`CPAN`" msgstr "`CPAN`" #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1325 #, no-wrap msgid "`GITHUB`" msgstr "`GITHUB`" #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1327 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1416 #, no-wrap msgid "`GH`" msgstr "`GH`" #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1328 #, no-wrap msgid "`GITHUB_CLOUD`" msgstr "`GITHUB_CLOUD`" #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1330 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1419 #, no-wrap msgid "`GHC`" msgstr "`GHC`" #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1331 #, no-wrap msgid "`LIBREOFFICE_DEV`" msgstr "`LIBREOFFICE_DEV`" #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1333 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1437 #, no-wrap msgid "`LODEV`" msgstr "`LODEV`" #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1334 #, no-wrap msgid "`NETLIB`" msgstr "`NETLIB`" #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1336 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1446 #, no-wrap msgid "`NL`" msgstr "`NL`" #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1337 #, no-wrap msgid "`RUBYGEMS`" msgstr "`RUBYGEMS`" #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1339 #, no-wrap msgid "`RG`" msgstr "`RG`" #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1340 #, no-wrap msgid "`SOURCEFORGE`" msgstr "`SOURCEFORGE`" #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1341 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1458 #, no-wrap msgid "`SF`" msgstr "`SF`" #. type: Title ==== #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1345 #, no-wrap msgid "Magic MASTER_SITES Macros" msgstr "Волшебные макросы MASTER_SITES" #. type: delimited block = 4 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1350 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:1354 #, no-wrap msgid "MASTER_SITES=\tSF\n" msgstr "MASTER_SITES=\tSF\n" #. type: Plain text #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1358 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:1362 #, 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:1365 msgid "This can also be written as" msgstr "Это также можно записать как" #. type: delimited block . 4 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1370 #, 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:1373 #, no-wrap msgid "Magic `MASTER_SITES` Macros" msgstr "Волшебные макросы `MASTER_SITES`" #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1379 #, no-wrap msgid "Assumed subdirectory" msgstr "Предполагаемый подкаталог" #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1380 #, no-wrap msgid "`APACHE_COMMONS_BINARIES`" msgstr "`APACHE_COMMONS_BINARIES`" #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1382 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1385 #, no-wrap msgid "`${PORTNAME:S,commons-,,}`" msgstr "`${PORTNAME:S,commons-,,}`" #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1383 #, no-wrap msgid "`APACHE_COMMONS_SOURCE`" msgstr "`APACHE_COMMONS_SOURCE`" #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1386 #, no-wrap msgid "`APACHE_JAKARTA`" msgstr "`APACHE_JAKARTA`" #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1388 #, no-wrap msgid "`${PORTNAME:S,-,/,}/source`" msgstr "`${PORTNAME:S,-,/,}/source`" #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1389 #, no-wrap msgid "`BERLIOS`" msgstr "`BERLIOS`" #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1391 #, no-wrap msgid "`${PORTNAME:tl}.berlios`" msgstr "`${PORTNAME:tl}.berlios`" #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1392 #, no-wrap msgid "`PYPI`" msgstr "`PYPI`" #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1394 #, 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:1397 #, no-wrap msgid "`${PORTNAME:C/-.*//}`" msgstr "`${PORTNAME:C/-.*//}`" #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1398 #, no-wrap msgid "`DEBIAN`" msgstr "`DEBIAN`" #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1400 #, 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:1401 #, no-wrap msgid "`FARSIGHT`" msgstr "`FARSIGHT`" #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1403 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1427 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1430 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1433 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1436 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1439 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1448 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1454 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1487 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1491 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1900 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1904 #, no-wrap msgid "`${PORTNAME}`" msgstr "`${PORTNAME}`" #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1404 #, no-wrap msgid "`FESTIVAL`" msgstr "`FESTIVAL`" #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1406 #, no-wrap msgid "`${PORTREVISION}`" msgstr "`${PORTREVISION}`" #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1407 #, no-wrap msgid "`GCC`" msgstr "`GCC`" #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1409 #, no-wrap msgid "`releases/${DISTNAME}`" msgstr "`releases/${DISTNAME}`" #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1410 #, no-wrap msgid "`GENTOO`" msgstr "`GENTOO`" #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1412 #, no-wrap msgid "`distfiles`" msgstr "`distfiles`" #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1413 #, no-wrap msgid "`GIMP`" msgstr "`GIMP`" #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1415 #, no-wrap msgid "`${PORTNAME}/${PORTVERSION:R}/`" msgstr "`${PORTNAME}/${PORTVERSION:R}/`" #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1418 #, 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:1421 #, no-wrap msgid "`${GH_ACCOUNT}/${GH_PROJECT}/`" msgstr "`${GH_ACCOUNT}/${GH_PROJECT}/`" #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1422 #, no-wrap msgid "`GNOME`" msgstr "`GNOME`" #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1424 #, 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:1425 #, no-wrap msgid "`GNU`" msgstr "`GNU`" #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1428 #, no-wrap msgid "`GNUPG`" msgstr "`GNUPG`" #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1431 #, no-wrap msgid "`GNU_ALPHA`" msgstr "`GNU_ALPHA`" #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1434 #, no-wrap msgid "`HORDE`" msgstr "`HORDE`" #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1440 #, no-wrap msgid "`MATE`" msgstr "`MATE`" #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1442 #, 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:1443 #, no-wrap msgid "`MOZDEV`" msgstr "`MOZDEV`" #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1445 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1457 #, no-wrap msgid "`${PORTNAME:tl}`" msgstr "`${PORTNAME:tl}`" #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1449 #, no-wrap msgid "`QT`" msgstr "`QT`" #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1451 #, no-wrap msgid "`archive/qt/${PORTVERSION:R}`" msgstr "`archive/qt/${PORTVERSION:R}`" #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1452 #, no-wrap msgid "`SAMBA`" msgstr "`SAMBA`" #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1455 #, no-wrap msgid "`SAVANNAH`" msgstr "`SAVANNAH`" #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1459 #, 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:1462 #, no-wrap msgid "`USE_GITHUB`" msgstr "`USE_GITHUB`" #. type: Plain text #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1466 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:1471 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:1474 msgid "These variables are available:" msgstr "Доступны следующие переменные:" #. type: Block title #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1476 #, no-wrap msgid "`USE_GITHUB` Description" msgstr "`USE_GITHUB` Описание" #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1480 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1889 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3684 #, no-wrap msgid "Variable" msgstr "Переменная" #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1483 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1892 #, no-wrap msgid "Default" msgstr "По умолчанию" #. 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_ACCOUNT`" msgstr "`GH_ACCOUNT`" #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1485 #, 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:1488 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4883 #, no-wrap msgid "`GH_PROJECT`" msgstr "`GH_PROJECT`" #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1489 #, no-wrap msgid "Name of the project on GitHub" msgstr "Название проекта на GitHub" #. type: Plain text #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1492 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4885 #, no-wrap msgid "`GH_TAGNAME`" msgstr "`GH_TAGNAME`" #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1493 #, 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:1495 #, no-wrap msgid "`${DISTVERSIONPREFIX}${DISTVERSION}${DISTVERSIONSUFFIX}`" msgstr "`${DISTVERSIONPREFIX}${DISTVERSION}${DISTVERSIONSUFFIX}`" #. type: Plain text #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1496 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4884 #, no-wrap msgid "`GH_SUBDIR`" msgstr "`GH_SUBDIR`" #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1499 #, 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:1501 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1914 #, no-wrap msgid "(none)" msgstr "(отсутствует)" #. type: Plain text #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1502 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4886 #, no-wrap msgid "`GH_TUPLE`" msgstr "`GH_TUPLE`" #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1503 #, 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:1509 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:1512 #, no-wrap msgid "Simple Use of `USE_GITHUB`" msgstr "Простое использование `USE_GITHUB`" #. type: delimited block = 4 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1517 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:1522 #, 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:1525 #, 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:1528 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:1531 #, no-wrap msgid "More Complete Use of `USE_GITHUB`" msgstr "Более полное использование `USE_GITHUB`" #. type: Plain text #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1535 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:1540 #, 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:1545 #, 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:1548 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:1552 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:1557 #, 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:1563 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:1569 #, 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:1571 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1635 #, no-wrap msgid "USE_GITHUB=\tyes\n" msgstr "USE_GITHUB=\tyes\n" #. type: Plain text #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1574 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:1577 #, 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:1582 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:1587 #, 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:1590 #, 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:1594 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:1599 #, 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:1602 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:1605 #, 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:1609 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:1614 #, 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:1617 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:1618 #, no-wrap msgid "`v0.7.3`" msgstr "`v0.7.3`" #. type: Plain text #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1620 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:1621 #, no-wrap msgid "`-14`" msgstr "`-14`" #. type: Plain text #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1623 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:1624 #, no-wrap msgid "`-gf0038b1`" msgstr "`-gf0038b1`" #. type: Plain text #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1626 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:1633 #, 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:1639 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:1646 #, 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:1652 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:1657 #, 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:1660 #, 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:1667 #, no-wrap msgid "Fetching Multiple Files from GitHub" msgstr "Извлечение нескольких файлов из GitHub" #. type: delimited block = 4 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1671 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:1677 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:1680 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:1683 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1987 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:1688 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1992 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:1695 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1999 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:1699 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:1703 #, 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:1708 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:1712 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2018 #, 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:1717 #, 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:1723 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:1728 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1774 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2034 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2080 #, 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:1734 #, 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:1736 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1780 #, 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:1743 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:1749 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:1753 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:1758 #, 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:1763 #, 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:1769 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:1778 #, 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:1784 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:1787 #, 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:1792 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:1795 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:1800 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:1816 #, 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:1820 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:1849 #, 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:1853 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:1859 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:1862 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:1868 #, 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:1875 #, 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:1880 #, no-wrap msgid "`USE_GITLAB`" msgstr "`USE_GITLAB`" #. type: delimited block = 4 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1883 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:1885 #, no-wrap msgid "`USE_GITLAB` Description" msgstr "Описание `USE_GITLAB`" #. type: Plain text #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1893 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4890 #, no-wrap msgid "`GL_SITE`" msgstr "`GL_SITE`" #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1894 #, no-wrap msgid "Site name hosting the GitLab project" msgstr "Название сайта, на котором размещен проект GitLab" #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1896 #, no-wrap msgid "https://gitlab.com/" msgstr "https://gitlab.com/" #. type: Plain text #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1897 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4887 #, no-wrap msgid "`GL_ACCOUNT`" msgstr "`GL_ACCOUNT`" #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1898 #, 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:1901 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4889 #, no-wrap msgid "`GL_PROJECT`" msgstr "`GL_PROJECT`" #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1902 #, no-wrap msgid "Name of the project on GitLab" msgstr "Название проекта на GitLab" #. type: Plain text #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1905 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4888 #, no-wrap msgid "`GL_COMMIT`" msgstr "`GL_COMMIT`" #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1906 #, 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:1908 #, no-wrap msgid "`(none)`" msgstr "`(нет)`" #. type: Plain text #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1909 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4891 #, no-wrap msgid "`GL_SUBDIR`" msgstr "`GL_SUBDIR`" #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1912 #, 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:1915 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4892 #, no-wrap msgid "`GL_TUPLE`" msgstr "`GL_TUPLE`" #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1916 #, 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:1920 #, no-wrap msgid "Simple Use of `USE_GITLAB`" msgstr "Простое использование `USE_GITLAB`" #. type: delimited block = 4 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1924 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:1929 #, 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:1933 #, 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:1936 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:1939 #, no-wrap msgid "More Complete Use of `USE_GITLAB`" msgstr "Более полное использование `USE_GITLAB`" #. type: Plain text #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1944 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:1949 #, 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:1955 #, 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:1958 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:1962 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:1967 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:1972 #, no-wrap msgid "Fetching Multiple Files from GitLab" msgstr "Извлечение нескольких файлов из GitLab" #. type: delimited block = 4 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:1977 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:1981 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:1984 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:2003 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:2007 #, 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:2014 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:2023 #, 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:2029 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:2041 #, 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:2043 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2087 #, 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:2050 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:2056 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:2060 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:2065 #, 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:2070 #, 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:2075 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:2085 #, 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:2091 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:2094 #, no-wrap msgid "`EXTRACT_SUFX`" msgstr "`EXTRACT_SUFX`" #. type: delimited block = 4 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2097 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:2099 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:2104 #, 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:2108 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:2112 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:2115 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4879 #, no-wrap msgid "`DISTFILES`" msgstr "`DISTFILES`" #. type: Plain text #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2120 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:2122 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:2126 #, 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:2129 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:2131 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4880 #, no-wrap msgid "`EXTRACT_ONLY`" msgstr "`EXTRACT_ONLY`" #. type: Plain text #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2134 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:2139 #, 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:2142 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:2146 #, no-wrap msgid "EXTRACT_ONLY=\n" msgstr "EXTRACT_ONLY=\n" #. type: Plain text #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2149 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4901 #, no-wrap msgid "`PATCHFILES`" msgstr "`PATCHFILES`" #. type: Plain text #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2152 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:2155 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:2157 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:2163 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:2167 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:2171 #, 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:2174 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:2178 #, 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:2186 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:2189 #, 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:2192 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:2195 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:2200 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:2204 #, 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:2207 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:2209 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:2212 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:2215 msgid "" "Once the concept is clear, 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:2218 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:2223 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:2226 #, no-wrap msgid "Simplified Information" msgstr "Упрощенная информация" #. type: Plain text #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2233 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:2237 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:2240 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:2244 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:2246 #, 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:2256 #, 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:2264 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:2266 #, 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:2277 #, 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:2282 #, no-wrap msgid "Detailed Information" msgstr "Подробная информация" #. type: delimited block = 4 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2285 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:2287 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:2289 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:2295 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:2296 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:2301 msgid "" "[[porting-master-sites-n-DEFAULT-group]] 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 "" "[[porting-master-sites-n-DEFAULT-group]] Элементы без постфикса не " "принадлежат к группам, все они относятся к специальной группе `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:2303 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:2307 #, 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:2312 #, 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:2315 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:2317 msgid "" "[[porting-master-sites-n-comma-operator]] When an element belongs to several " "groups at the same time, use the comma operator (`,`)." msgstr "" "[[porting-master-sites-n-comma-operator]] Когда элемент принадлежит " "нескольким группам одновременно, используйте оператор запятую (`,`)." #. type: Plain text #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2320 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:2322 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:2326 #, 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:2331 #, 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:2336 #, 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:2341 #, 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:2344 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:2346 msgid "" "[[porting-master-sites-n-group-semantics]] 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 "" "[[porting-master-sites-n-group-semantics]] Семантика групп может " "использоваться в любых переменных `MASTER_SITES`, `PATCH_SITES`, " "`MASTER_SITE_SUBDIR`, `PATCH_SITE_SUBDIR`, `DISTFILES` и `PATCHFILES` " "согласно следующему синтаксису:" #. type: Plain text #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2360 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:2362 #, 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:2369 #, 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:2372 msgid "Directories within group `DEFAULT` -> old:n" msgstr "Каталоги в группе `DEFAULT` -> old:n" #. type: Plain text #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2373 msgid "Directories within group `NEW` -> new" msgstr "Каталоги в группе `NEW` -> new" #. type: Block title #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2377 #, 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:2395 #, 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:2399 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:2401 msgid "[.filename]#file1# will be fetched from" msgstr "[.filename]#file1# будет загружен из" #. 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:2423 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2429 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2439 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2444 msgid "`MASTER_SITE_OVERRIDE`" msgstr "`MASTER_SITE_OVERRIDE`" #. type: Plain text #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2404 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2414 msgid "http://site1/directory-trial:1/" msgstr "http://site1/directory-trial:1/" #. type: Plain text #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2405 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2415 msgid "http://site1/directory-one/" msgstr "http://site1/directory-one/" #. type: Plain text #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2406 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2416 msgid "http://site1/directory/" msgstr "http://site1/directory/" #. type: Plain text #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2407 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2417 msgid "http://site2/" msgstr "http://site2/" #. type: Plain text #: 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:2433 msgid "http://site7/" msgstr "http://site7/" #. type: Plain text #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2409 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2419 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2425 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2435 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2440 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2446 msgid "`MASTER_SITE_BACKUP`" msgstr "`MASTER_SITE_BACKUP`" #. type: Plain text #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2411 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:2421 msgid "[.filename]#file3# will be fetched from" msgstr "[.filename]#file3# будет загружен из" #. type: Plain text #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2424 msgid "http://site3/" msgstr "http://site3/" #. type: Plain text #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2427 msgid "[.filename]#file4# will be fetched from" msgstr "[.filename]#file4# будет загружен из" #. type: Plain text #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2430 msgid "http://site4/" msgstr "http://site4/" #. type: Plain text #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2431 msgid "http://site5/" msgstr "http://site5/" #. type: Plain text #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2432 msgid "http://site6/" msgstr "http://site6/" #. type: Plain text #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2434 msgid "http://site8/directory-one/" msgstr "http://site8/directory-one/" #. type: Plain text #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2437 msgid "[.filename]#file5# will be fetched from" msgstr "[.filename]#file5# будет загружен из" #. type: Plain text #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2442 msgid "[.filename]#file6# will be fetched from" msgstr "[.filename]#file6# будет получен из" #. type: Plain text #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2445 msgid "http://site8/" msgstr "http://site8/" #. type: delimited block = 4 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2450 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:2454 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:2456 #, 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:2464 #, 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:2467 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:2469 msgid "How do I use this with `PATCH*`?" msgstr "Как использовать это с `PATCH*`?" #. type: delimited block = 4 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2473 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:2475 #, 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:2483 #, 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:2488 #, 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:2495 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:2497 msgid "" "[[porting-master-sites-n-what-changes-in-port-targets]] 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 "" "[[porting-master-sites-n-what-changes-in-port-targets]] Порты сохраняют те " "же цели: `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:2503 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:2504 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:2505 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:2510 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:2512 msgid "New port targets" msgstr "Новые цели портов" #. type: delimited block = 4 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2513 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:2515 msgid "" "[[porting-master-sites-n-new-port-targets-master-sites-all]] 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 "" "[[porting-master-sites-n-new-port-targets-master-sites-all]] Существуют " "новые цели `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:2517 #, no-wrap msgid "`DIST_SUBDIR`" msgstr "`DIST_SUBDIR`" #. type: delimited block = 4 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2522 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:2524 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:2528 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:2531 #, no-wrap msgid "`MAINTAINER`" msgstr "`MAINTAINER`" #. type: delimited block = 4 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2534 msgid "Set the mail-address here. Please. _:-)_" msgstr "Установите здесь свой адрес электронной почты. Пожалуйста. _:-)_" #. type: delimited block = 4 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2539 msgid "" "Only a single address without the comment part is allowed as a `MAINTAINER` " "value. The format used is `[email protected]`. 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`. Используемый формат: `[email protected]`. Пожалуйста, не " "включайте в эту запись описательный текст, например, настоящее имя. Это " "только вносит путаницу в инфраструктуру Ports и большинство инструментов, " "которые её используют." #. type: delimited block = 4 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2542 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:2551 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:2554 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:2557 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:2564 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:2568 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:2570 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:2572 #, no-wrap msgid "`COMMENT`" msgstr "`COMMENT`" #. type: delimited block = 4 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2576 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:2578 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:2579 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:2580 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:2581 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:2582 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:2583 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:2584 msgid "Check for spelling errors." msgstr "Проверяйте на наличие орфографических ошибок." #. type: delimited block = 4 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2586 msgid "Here is an example:" msgstr "Вот пример:" #. type: delimited block . 4 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2590 #, 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:2593 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:2595 #, no-wrap msgid "Project website" msgstr "Веб-сайт проекта" #. type: Plain text #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2598 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:2600 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:2604 #, 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:2607 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:2611 #, 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:2614 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:2617 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:2621 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:2623 #, no-wrap msgid "Licenses" msgstr "Лицензии" #. type: Plain text #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2627 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:2629 #, no-wrap msgid "`LICENSE`" msgstr "`LICENSE`" #. type: Plain text #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2632 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:2634 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:2638 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:2641 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:2643 #, no-wrap msgid "Simplest Usage, Predefined Licenses" msgstr "Простейшее использование, предопределённые лицензии" #. type: delimited block = 4 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2648 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:2652 #, no-wrap msgid "LICENSE=\tLGPL21+\n" msgstr "LICENSE=\tLGPL21+\n" #. type: Plain text #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2655 msgid "When the software provides the license file, use this:" msgstr "" "Когда программное обеспечение предоставляет файл лицензии, используйте это:" #. type: delimited block . 4 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2660 #, 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:2665 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:2667 #, no-wrap msgid "Predefined License List" msgstr "Предопределённый список лицензий" #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2671 #, no-wrap msgid "Short Name" msgstr "Короткое имя" #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2672 #, no-wrap msgid "Name" msgstr "Имя" #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2673 #, no-wrap msgid "Group" msgstr "Группа" #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2675 #, no-wrap msgid "Permissions" msgstr "Разрешения" #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2676 #, no-wrap msgid "`AGPLv3`" msgstr "`AGPLv3`" #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2677 #, 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:2678 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2683 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2708 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2908 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2923 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2928 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2933 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2938 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2943 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2948 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2953 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2958 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2963 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2973 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2978 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2983 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2988 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2993 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2998 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3108 #, no-wrap msgid "`FSF GPL OSI`" msgstr "`FSF GPL OSI`" #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2680 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2685 #: 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:2700 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2705 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2710 #: 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:2730 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2735 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2740 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2745 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2750 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2755 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2760 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2765 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2845 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2850 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2855 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2860 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2865 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2870 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2875 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2880 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2885 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2890 #: 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:2905 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2910 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2915 #: 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:2965 #: 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:3000 #: 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:3055 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3060 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3070 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3075 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3080 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3085 #: 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 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3105 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3110 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3115 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3120 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3125 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3130 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3135 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3140 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3144 #, no-wrap msgid "(default)" msgstr "(по умолчанию)" #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2681 #, no-wrap msgid "`AGPLv3+`" msgstr "`AGPLv3+`" #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2682 #, 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:2686 #, no-wrap msgid "`APACHE10`" msgstr "`APACHE10`" #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2687 #, no-wrap msgid "Apache License 1.0" msgstr "Apache License 1.0" #. type: Labeled list #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2688 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2733 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2918 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3083 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3118 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3267 #, no-wrap msgid "`FSF`" msgstr "`FSF`" #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2691 #, no-wrap msgid "`APACHE11`" msgstr "`APACHE11`" #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2692 #, no-wrap msgid "Apache License 1.1" msgstr "Apache License 1.1" #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2693 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2698 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2898 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2903 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2913 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3003 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3008 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3013 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3018 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3023 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3028 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3033 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3043 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3048 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3053 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3093 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3098 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3103 #, no-wrap msgid "`FSF OSI`" msgstr "`FSF OSI`" #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2696 #, no-wrap msgid "`APACHE20`" msgstr "`APACHE20`" #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2697 #, no-wrap msgid "Apache License 2.0" msgstr "Apache License 2.0" #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2701 #, no-wrap msgid "`ART10`" msgstr "`ART10`" #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2702 #, no-wrap msgid "Artistic License version 1.0" msgstr "Художественная лицензия версия 1.0" #. type: Labeled list #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2703 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2713 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3275 #, no-wrap msgid "`OSI`" msgstr "`OSI`" #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2706 #, no-wrap msgid "`ART20`" msgstr "`ART20`" #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2707 #, no-wrap msgid "Artistic License version 2.0" msgstr "Художественная лицензия версии 2.0" #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2711 #, no-wrap msgid "`ARTPERL10`" msgstr "`ARTPERL10`" #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2712 #, no-wrap msgid "Artistic License (perl) version 1.0" msgstr "Художественная лицензия (perl) версия 1.0" #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2716 #, no-wrap msgid "`BSD`" msgstr "`BSD`" #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2717 #, no-wrap msgid "BSD license Generic Version (deprecated)" msgstr "Лицензия BSD, общая версия (устарела)" #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2718 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2723 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2728 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2738 #, no-wrap msgid "`FSF OSI COPYFREE`" msgstr "`FSF OSI COPYFREE`" #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2721 #, no-wrap msgid "`BSD2CLAUSE`" msgstr "`BSD2CLAUSE`" #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2722 #, no-wrap msgid "BSD 2-clause \"Simplified\" License" msgstr "BSD 2-пунктная лицензия \"Упрощенная\"" #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2726 #, no-wrap msgid "`BSD3CLAUSE`" msgstr "`BSD3CLAUSE`" #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2727 #, no-wrap msgid "BSD 3-clause \"New\" or \"Revised\" License" msgstr "BSD 3-пунктная лицензия \"Новая\" или \"Пересмотренная\"" #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2731 #, no-wrap msgid "`BSD4CLAUSE`" msgstr "`BSD4CLAUSE`" #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2732 #, no-wrap msgid "BSD 4-clause \"Original\" or \"Old\" License" msgstr "BSD 4-пунктная лицензия \"Оригинальная\" или \"Старая\"" #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2736 #, no-wrap msgid "`BSL`" msgstr "`BSL`" #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2737 #, no-wrap msgid "Boost Software License" msgstr "Лицензия программного обеспечения Boost" #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2741 #, no-wrap msgid "`CC-BY-1.0`" msgstr "`CC-BY-1.0`" #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2742 #, no-wrap msgid "Creative Commons Attribution 1.0" msgstr "Creative Commons с указанием авторства 1.0" #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2746 #, no-wrap msgid "`CC-BY-2.0`" msgstr "`CC-BY-2.0`" #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2747 #, no-wrap msgid "Creative Commons Attribution 2.0" msgstr "Creative Commons с указанием авторства 2.0" #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2751 #, no-wrap msgid "`CC-BY-2.5`" msgstr "`CC-BY-2.5`" #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2752 #, no-wrap msgid "Creative Commons Attribution 2.5" msgstr "Creative Commons с указанием авторства 2.5" #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2756 #, no-wrap msgid "`CC-BY-3.0`" msgstr "`CC-BY-3.0`" #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2757 #, no-wrap msgid "Creative Commons Attribution 3.0" msgstr "Creative Commons с указанием авторства 3.0" #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2761 #, no-wrap msgid "`CC-BY-4.0`" msgstr "`CC-BY-4.0`" #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2762 #, no-wrap msgid "Creative Commons Attribution 4.0" msgstr "Creative Commons с указанием авторства 4.0" #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2766 #, 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:2767 #, 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:2770 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2775 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2780 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2785 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2790 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2795 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2800 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2805 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2810 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2815 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2820 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2825 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2830 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2835 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2840 #, 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:2771 #, 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:2772 #, 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:2776 #, 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:2777 #, 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:2781 #, 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:2782 #, 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:2786 #, 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:2787 #, 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:2791 #, 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:2792 #, 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:2796 #, 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:2797 #, 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:2801 #, 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:2802 #, 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:2806 #, 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:2807 #, 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:2811 #, 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:2812 #, 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:2816 #, 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:2817 #, 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:2821 #, 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:2822 #, 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:2826 #, 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:2827 #, 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:2831 #, 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:2832 #, 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:2836 #, 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:2837 #, 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:2841 #, 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:2842 #, 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:2846 #, 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:2847 #, 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:2851 #, 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:2852 #, 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:2856 #, 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:2857 #, 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:2861 #, 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:2862 #, 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:2866 #, 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:2867 #, 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:2871 #, 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:2872 #, 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:2876 #, 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:2877 #, 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:2881 #, 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:2882 #, 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:2886 #, 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:2887 #, 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:2891 #, no-wrap msgid "`CC0-1.0`" msgstr "`CC0-1.0`" #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2892 #, 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:2893 #, no-wrap msgid "`FSF GPL COPYFREE`" msgstr "`FSF GPL COPYFREE`" #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2896 #, no-wrap msgid "`CDDL`" msgstr "`CDDL`" #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2897 #, no-wrap msgid "Common Development and Distribution License" msgstr "Лицензия на совместную разработку и распространение" #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2901 #, no-wrap msgid "`CPAL-1.0`" msgstr "`CPAL-1.0`" #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2902 #, no-wrap msgid "Common Public Attribution License" msgstr "Публичная лицензия общего распространения с указанием авторства" #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2906 #, no-wrap msgid "`ClArtistic`" msgstr "`ClArtistic`" #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2907 #, no-wrap msgid "Clarified Artistic License" msgstr "Уточнённая художественная лицензия" #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2911 #, no-wrap msgid "`EPL`" msgstr "`EPL`" #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2912 #, no-wrap msgid "Eclipse Public License" msgstr "Публичная лицензия Eclipse" #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2916 #, no-wrap msgid "`GFDL`" msgstr "`GFDL`" #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2917 #, no-wrap msgid "GNU Free Documentation License" msgstr "GNU Свободная лицензия на документацию" #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2921 #, no-wrap msgid "`GMGPL`" msgstr "`GMGPL`" #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2922 #, no-wrap msgid "GNAT Modified General Public License" msgstr "Модифицированная Общедоступная лицензия GNAT" #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2926 #, no-wrap msgid "`GPLv1`" msgstr "`GPLv1`" #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2927 #, no-wrap msgid "GNU General Public License version 1" msgstr "Универсальная общественная лицензия GNU версии 1" #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2931 #, no-wrap msgid "`GPLv1+`" msgstr "`GPLv1+`" #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2932 #, 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:2936 #, no-wrap msgid "`GPLv2`" msgstr "`GPLv2`" #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2937 #, no-wrap msgid "GNU General Public License version 2" msgstr "Универсальная общественная лицензия GNU версии 2" #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2941 #, no-wrap msgid "`GPLv2+`" msgstr "`GPLv2+`" #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2942 #, 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:2946 #, no-wrap msgid "`GPLv3`" msgstr "`GPLv3`" #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2947 #, no-wrap msgid "GNU General Public License version 3" msgstr "Универсальная общественная лицензия GNU версии 3" #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2951 #, no-wrap msgid "`GPLv3+`" msgstr "`GPLv3+`" #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2952 #, 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:2956 #, no-wrap msgid "`GPLv3RLE`" msgstr "`GPLv3RLE`" #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2957 #, 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:2961 #, no-wrap msgid "`GPLv3RLE+`" msgstr "`GPLv3RLE+`" #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2962 #, 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:2966 #, no-wrap msgid "`ISCL`" msgstr "`ISCL`" #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2967 #, no-wrap msgid "Internet Systems Consortium License" msgstr "Лицензия Internet Systems Consortium" #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2968 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3113 #, no-wrap msgid "`FSF GPL OSI COPYFREE`" msgstr "`FSF GPL OSI COPYFREE`" #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2971 #, no-wrap msgid "`LGPL20`" msgstr "`LGPL20`" #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2972 #, 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:2976 #, no-wrap msgid "`LGPL20+`" msgstr "`LGPL20+`" #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2977 #, 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:2981 #, no-wrap msgid "`LGPL21`" msgstr "`LGPL21`" #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2982 #, 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:2986 #, no-wrap msgid "`LGPL21+`" msgstr "`LGPL21+`" #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2987 #, 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:2991 #, no-wrap msgid "`LGPL3`" msgstr "`LGPL3`" #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2992 #, no-wrap msgid "GNU Lesser General Public License version 3" msgstr "Универсальная общественная лицензия GNU ограниченного применения, версия 3" #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2996 #, no-wrap msgid "`LGPL3+`" msgstr "`LGPL3+`" #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:2997 #, 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:3001 #, no-wrap msgid "`LPPL10`" msgstr "`LPPL10`" #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3002 #, 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: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:3035 #, no-wrap msgid "`dist-mirror dist-sell`" msgstr "`dist-mirror dist-sell`" #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3006 #, no-wrap msgid "`LPPL11`" msgstr "`LPPL11`" #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3007 #, 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:3011 #, no-wrap msgid "`LPPL12`" msgstr "`LPPL12`" #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3012 #, 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:3016 #, no-wrap msgid "`LPPL13`" msgstr "`LPPL13`" #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3017 #, 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:3021 #, no-wrap msgid "`LPPL13a`" msgstr "`LPPL13a`" #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3022 #, 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:3026 #, no-wrap msgid "`LPPL13b`" msgstr "`LPPL13b`" #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3027 #, 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:3031 #, no-wrap msgid "`LPPL13c`" msgstr "`LPPL13c`" #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3032 #, 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:3036 #, no-wrap msgid "`MIT`" msgstr "`MIT`" #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3037 #, no-wrap msgid "MIT license / X11 license" msgstr "Лицензия MIT / Лицензия X11" #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3038 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3058 #, no-wrap msgid "`COPYFREE FSF GPL OSI`" msgstr "`COPYFREE FSF GPL OSI`" #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3041 #, no-wrap msgid "`MPL10`" msgstr "`MPL10`" #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3042 #, no-wrap msgid "Mozilla Public License version 1.0" msgstr "Публичная лицензия Mozilla, версия 1.0" #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3046 #, no-wrap msgid "`MPL11`" msgstr "`MPL11`" #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3047 #, no-wrap msgid "Mozilla Public License version 1.1" msgstr "Публичная лицензия Mozilla, версия 1.1" #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3051 #, no-wrap msgid "`MPL20`" msgstr "`MPL20`" #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3052 #, no-wrap msgid "Mozilla Public License version 2.0" msgstr "Публичная лицензия Mozilla, версия 2.0" #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3056 #, no-wrap msgid "`NCSA`" msgstr "`NCSA`" #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3057 #, no-wrap msgid "University of Illinois/NCSA Open Source License" msgstr "Открытая лицензия Университета Иллинойса/NCSA" #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3061 #, no-wrap msgid "`NONE`" msgstr "`NONE`" #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3062 #, no-wrap msgid "No license specified" msgstr "Лицензия не указана" #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3065 #, no-wrap msgid "`none`" msgstr "`none`" #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3066 #, no-wrap msgid "`OFL10`" msgstr "`OFL10`" #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3067 #, 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:3068 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3073 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3283 #, no-wrap msgid "`FONTS`" msgstr "`FONTS`" #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3071 #, no-wrap msgid "`OFL11`" msgstr "`OFL11`" #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3072 #, 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:3076 #, no-wrap msgid "`OWL`" msgstr "`OWL`" #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3077 #, 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:3078 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3279 #, no-wrap msgid "`COPYFREE`" msgstr "`COPYFREE`" #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3081 #, no-wrap msgid "`OpenSSL`" msgstr "`OpenSSL`" #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3082 #, no-wrap msgid "OpenSSL License" msgstr "Лицензия OpenSSL" #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3086 #, no-wrap msgid "`PD`" msgstr "`PD`" #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3087 #, no-wrap msgid "Public Domain" msgstr "Общественное достояние" #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3088 #, no-wrap msgid "`GPL COPYFREE`" msgstr "`GPL COPYFREE`" #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3091 #, no-wrap msgid "`PHP202`" msgstr "`PHP202`" #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3092 #, no-wrap msgid "PHP License version 2.02" msgstr "Лицензия PHP версии 2.02" #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3096 #, no-wrap msgid "`PHP30`" msgstr "`PHP30`" #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3097 #, no-wrap msgid "PHP License version 3.0" msgstr "Лицензия PHP версии 3.0" #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3101 #, no-wrap msgid "`PHP301`" msgstr "`PHP301`" #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3102 #, no-wrap msgid "PHP License version 3.01" msgstr "Лицензия PHP версии 3.01" #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3106 #, no-wrap msgid "`PSFL`" msgstr "`PSFL`" #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3107 #, no-wrap msgid "Python Software Foundation License" msgstr "Лицензия Python Software Foundation" #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3111 #, no-wrap msgid "`PostgreSQL`" msgstr "`PostgreSQL`" #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3112 #, no-wrap msgid "PostgreSQL License" msgstr "Лицензия PostgreSQL" #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3116 #, no-wrap msgid "`RUBY`" msgstr "`RUBY`" #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3117 #, no-wrap msgid "Ruby License" msgstr "Лицензия Ruby" #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3121 #, no-wrap msgid "`UNLICENSE`" msgstr "`UNLICENSE`" #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3122 #, no-wrap msgid "The Unlicense" msgstr "Отказ от лицензии (The Unlicense)" #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3123 #, no-wrap msgid "`COPYFREE FSF GPL`" msgstr "`COPYFREE FSF GPL`" #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3126 #, no-wrap msgid "`WTFPL`" msgstr "`WTFPL`" #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3127 #, 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:3128 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3133 #, no-wrap msgid "`GPL FSF COPYFREE`" msgstr "`GPL FSF COPYFREE`" #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3131 #, no-wrap msgid "`WTFPL1`" msgstr "`WTFPL1`" #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3132 #, 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:3136 #, no-wrap msgid "`ZLIB`" msgstr "`ZLIB`" #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3137 #, no-wrap msgid "zlib License" msgstr "Лицензия zlib" #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3138 #, no-wrap msgid "`GPL FSF OSI`" msgstr "`GPL FSF OSI`" #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3141 #, no-wrap msgid "`ZPL21`" msgstr "`ZPL21`" #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3142 #, no-wrap msgid "Zope Public License version 2.1" msgstr "Публичная лицензия Zope версия 2.1" #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3143 #, no-wrap msgid "`GPL OSI`" msgstr "`GPL OSI`" #. type: Title === #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3147 #, 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:3150 msgid "Permissions. use `none` if empty." msgstr "Разрешения. Используйте `none`, если пусто." #. type: Block title #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3151 #, no-wrap msgid "License Permissions List" msgstr "Список разрешений лицензии" #. type: Labeled list #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3153 #, no-wrap msgid "`dist-mirror`" msgstr "`dist-mirror`" #. type: Plain text #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3156 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:3158 #, no-wrap msgid "`no-dist-mirror`" msgstr "`no-dist-mirror`" #. type: Plain text #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3162 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:3164 #, no-wrap msgid "`dist-sell`" msgstr "`dist-sell`" #. type: Plain text #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3167 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:3169 #, no-wrap msgid "`no-dist-sell`" msgstr "`no-dist-sell`" #. type: Plain text #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3172 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:3174 #, no-wrap msgid "`pkg-mirror`" msgstr "`pkg-mirror`" #. type: Plain text #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3177 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:3179 #, no-wrap msgid "`no-pkg-mirror`" msgstr "`no-pkg-mirror`" #. type: Plain text #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3183 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:3185 #, no-wrap msgid "`pkg-sell`" msgstr "`pkg-sell`" #. type: Plain text #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3188 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:3190 #, no-wrap msgid "`no-pkg-sell`" msgstr "`no-pkg-sell`" #. type: Plain text #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3194 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:3196 #, no-wrap msgid "`auto-accept`" msgstr "`auto-accept`" #. type: Plain text #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3200 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:3202 #, no-wrap msgid "`no-auto-accept`" msgstr "`no-auto-accept`" #. type: Plain text #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3206 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:3208 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:3210 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:3214 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:3216 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:3218 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:3221 #, no-wrap msgid "Nonstandard License" msgstr "Нестандартная лицензия" #. type: delimited block = 4 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3225 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:3233 #, 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:3238 #, no-wrap msgid "Standard and Nonstandard Licenses" msgstr "Стандартные и нестандартные лицензии" #. type: Plain text #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3244 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:3252 #, 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:3258 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:3261 #, 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:3264 msgid "Groups the license belongs." msgstr "Группы, к которым принадлежит лицензия." #. type: Block title #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3265 #, no-wrap msgid "Predefined License Groups List" msgstr "Список предопределённых групп лицензий" #. type: delimited block = 4 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3269 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:3271 #, no-wrap msgid "`GPL`" msgstr "`GPL`" #. type: delimited block = 4 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3273 msgid "GPL Compatible" msgstr "Совместимые с GPL" #. type: delimited block = 4 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3277 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:3281 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:3285 msgid "Font licenses" msgstr "Лицензии на шрифты" #. type: Title === #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3287 #, 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:3290 msgid "Full name of the license." msgstr "Полное название лицензии." #. type: Block title #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3292 #, no-wrap msgid "`LICENSE_NAME`" msgstr "`LICENSE_NAME`" #. type: delimited block . 4 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3302 #, 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:3307 #, 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:3312 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:3314 #, no-wrap msgid "`LICENSE_FILE`" msgstr "`LICENSE_FILE`" #. type: delimited block . 4 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3322 #, 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:3327 #, 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:3331 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:3333 #, no-wrap msgid "`LICENSE_TEXT`" msgstr "`LICENSE_TEXT`" #. type: delimited block . 4 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3344 #, 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:3349 #, 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:3353 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:3355 #, no-wrap msgid "`LICENSE_DISTFILES`" msgstr "`LICENSE_DISTFILES`" #. type: Plain text #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3360 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:3365 #, 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:3373 #, 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:3378 #, no-wrap msgid "`LICENSE_COMB`" msgstr "`LICENSE_COMB`" #. type: delimited block = 4 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3383 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:3385 #, no-wrap msgid "Dual Licenses" msgstr "Двойные лицензии" #. type: Plain text #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3392 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:3397 #, 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:3400 msgid "If license files are provided, use this:" msgstr "Если предоставлены файлы лицензий, используйте это:" #. type: delimited block . 4 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3407 #, 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:3412 #, no-wrap msgid "Multiple Licenses" msgstr "Множественные лицензии" #. type: Plain text #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3417 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:3422 #, 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:3427 #, no-wrap msgid "`PORTSCOUT`" msgstr "`PORTSCOUT`" #. type: delimited block = 4 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3430 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:3432 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:3434 msgid "Situations where `PORTSCOUT` is set include:" msgstr "Ситуации, когда установлена переменная `PORTSCOUT`, включают:" #. type: delimited block = 4 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3436 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:3440 #, 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:3443 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:3447 #, no-wrap msgid "PORTSCOUT=\tignore:1\n" msgstr "PORTSCOUT=\tignore:1\n" #. type: Plain text #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3450 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:3454 #, 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:3457 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:3461 #, 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:3464 #, no-wrap msgid "Dependencies" msgstr "Зависимости" #. type: Plain text #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3471 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:3477 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:3480 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4833 #, no-wrap msgid "`LIB_DEPENDS`" msgstr "`LIB_DEPENDS`" #. type: Plain text #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3485 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:3489 #, 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:3492 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:3495 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:3497 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4834 #, no-wrap msgid "`RUN_DEPENDS`" msgstr "`RUN_DEPENDS`" #. type: Plain text #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3502 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:3504 msgid "For example," msgstr "Например," #. type: delimited block . 4 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3509 #, 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:3513 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:3518 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:3523 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:3527 #, 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:3534 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:3537 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:3541 #, 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:3548 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:3555 #, 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:3561 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:3564 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4832 #, no-wrap msgid "`BUILD_DEPENDS`" msgstr "`BUILD_DEPENDS`" #. type: Plain text #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3569 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:3573 #, 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:3576 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3614 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:3582 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:3585 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4831 #, no-wrap msgid "`FETCH_DEPENDS`" msgstr "`FETCH_DEPENDS`" #. type: Plain text #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3590 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:3594 #, 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:3597 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:3600 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:3602 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4829 #, no-wrap msgid "`EXTRACT_DEPENDS`" msgstr "`EXTRACT_DEPENDS`" #. type: Plain text #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3607 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:3611 #, 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:3617 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:3621 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:3624 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4830 #, no-wrap msgid "`PATCH_DEPENDS`" msgstr "`PATCH_DEPENDS`" #. type: Plain text #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3628 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:3632 #, 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:3635 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:3638 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:3640 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4911 #, no-wrap msgid "`USES`" msgstr "`USES`" #. type: Plain text #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3644 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:3648 #, no-wrap msgid "USES= feature[:arguments]\n" msgstr "USES= feature[:arguments]\n" #. type: Plain text #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3651 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:3655 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:3658 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3680 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4208 #, no-wrap msgid "`USE_*`" msgstr "`USE_*`" #. type: Plain text #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3665 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:3670 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:3674 #, 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:3677 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:3686 #, no-wrap msgid "Means" msgstr "Значение" #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3687 #, no-wrap msgid "`USE_GCC`" msgstr "`USE_GCC`" #. type: Table #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3712 #, 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:3721 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:uses[uses-ruby,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:uses[uses-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:3723 #, no-wrap msgid "Minimal Version of a Dependency" msgstr "Минимальная версия зависимого пакета" #. type: Plain text #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3726 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:3730 #, 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:3734 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:3736 #, no-wrap msgid "Notes on Dependencies" msgstr "Заметки о зависимостях" #. type: Plain text #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3742 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:3746 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:3751 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:3755 #, 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:3758 msgid "will always descend to the `jpeg` port and extract it." msgstr "всегда будет переходить к порту `jpeg` и извлекать его." #. type: Title === #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3760 #, no-wrap msgid "Circular Dependencies Are Fatal" msgstr "Циклические зависимости фатальны" #. type: delimited block = 4 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3765 msgid "Do not introduce any circular dependencies into the ports tree!" msgstr "Не создавайте циклических зависимостей в дереве портов!" #. type: Plain text #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3772 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:3774 #, no-wrap msgid "Problems Caused by Automatic Dependencies" msgstr "Проблемы, вызванные автоматическими зависимостями" #. type: Plain text #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3779 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:3781 #, no-wrap msgid "Wrong Declaration of an Optional Dependency" msgstr "Неправильное объявление необязательной зависимости" #. type: delimited block . 4 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3788 #, 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:3792 #, 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:3801 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:3803 #, no-wrap msgid "Correct Declaration of an Optional Dependency" msgstr "Правильное объявление необязательной зависимости" #. type: delimited block . 4 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3811 #, 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:3813 #, 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:3820 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:3822 #, no-wrap msgid "Slave Ports and `MASTERDIR`" msgstr "Подчиненные порты и `MASTERDIR`" #. type: delimited block = 4 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3829 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:3832 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:3838 #, 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:3840 #, 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:3853 #, 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:3857 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:3859 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:3864 #, 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:3866 #, 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:3871 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:3873 #, no-wrap msgid "Man Pages" msgstr "Страницы Справочника" #. type: Plain text #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3878 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:3880 #, no-wrap msgid "Info Files" msgstr "Файлы информации" #. type: Plain text #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3887 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:3891 #, 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:3894 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:3896 #, no-wrap msgid "Makefile Options" msgstr "Параметры Makefile" #. type: Plain text #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3901 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:3903 #, no-wrap msgid "`OPTIONS`" msgstr "`OPTIONS`" #. type: Title ==== #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3906 #, no-wrap msgid "Background" msgstr "Пояснения" #. type: Plain text #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3912 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:3916 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:3918 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:3921 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:3923 #, no-wrap msgid "Syntax" msgstr "Синтаксис" #. type: Plain text #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:3927 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:3931 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4360 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4657 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4714 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4778 #, 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:3934 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:3943 #, 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:3947 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:3953 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:3959 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:3962 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:3967 #, 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:3973 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:3976 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:3981 #, 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:3984 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:3989 #, 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:3992 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:3997 #, 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:4000 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:4004 #, 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:4010 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:4012 #, no-wrap msgid "Simple Use of `OPTIONS`" msgstr "Простое использование `OPTIONS`" #. type: delimited block . 4 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4020 #, 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:4023 #, 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:4027 #, 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:4029 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4093 #, 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:4034 #, no-wrap msgid "Check for Unset Port `OPTIONS`" msgstr "Проверка неустановленных `OPTIONS` порта" #. type: delimited block . 4 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4043 #, 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:4047 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:4052 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4089 #, 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:4057 #, no-wrap msgid "Practical Use of `OPTIONS`" msgstr "Пример реального использования `OPTIONS`" #. type: delimited block . 4 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4065 #, 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:4068 #, 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:4071 #, 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:4079 #, 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:4084 #, 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:4086 #, 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:4091 #, no-wrap msgid "# Check other OPTIONS\n" msgstr "# Check other OPTIONS\n" #. type: Title ==== #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4098 #, no-wrap msgid "Default Options" msgstr "Опции по умолчанию" #. type: delimited block = 4 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4101 msgid "These options are always on by default." msgstr "Эти опции всегда включены по умолчанию." #. type: delimited block = 4 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4103 msgid "`DOCS` - build and install documentation." msgstr "`DOCS` — сборка и установка документации." #. type: delimited block = 4 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4104 msgid "`NLS` - Native Language Support." msgstr "`NLS` — Поддержка родного языка." #. type: delimited block = 4 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4105 msgid "`EXAMPLES` - build and install examples." msgstr "`EXAMPLES` — сборка и установка примеров." #. type: delimited block = 4 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4106 msgid "`IPV6` - IPv6 protocol support." msgstr "`IPV6` — Поддержка протокола IPv6." #. type: Plain text #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4111 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:4114 #, no-wrap msgid "Feature Auto-Activation" msgstr "Автоматическая активация функций" #. type: delimited block = 4 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4118 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:4120 #, no-wrap msgid "Wrong Handling of an Option" msgstr "Неправильная обработка опции" #. type: delimited block . 4 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4130 #, 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:4138 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:4140 #, no-wrap msgid "Correct Handling of an Option" msgstr "Правильная обработка опции" #. type: delimited block . 4 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4149 #, 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:4157 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:4161 #, 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:4164 msgid "as an alternative to" msgstr "в качестве альтернативы" #. type: delimited block . 4 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4168 #, no-wrap msgid ".if ${VARIABLE:MVALUE}\n" msgstr ".if ${VARIABLE:MVALUE}\n" #. type: Title === #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4173 #, no-wrap msgid "Options Helpers" msgstr "Помощники параметров" #. type: delimited block = 4 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4177 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:4178 #, 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:4180 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:4182 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:4183 #, no-wrap msgid "`CONFIGURE_ARGS`" msgstr "`CONFIGURE_ARGS`" #. type: delimited block = 4 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4185 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:4187 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:4189 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:4190 #, no-wrap msgid "`CMAKE_ARGS`" msgstr "`CMAKE_ARGS`" #. type: delimited block = 4 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4193 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:4195 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:4196 #, no-wrap msgid "`MESON_ARGS`" msgstr "`MESON_ARGS`" #. type: delimited block = 4 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4198 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:4200 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:4202 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:4204 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:4205 #, no-wrap msgid "`QMAKE_ARGS`" msgstr "`QMAKE_ARGS`" #. type: delimited block = 4 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4207 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:4210 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:4211 #, no-wrap msgid "`*_DEPENDS`" msgstr "`*_DEPENDS`" #. type: delimited block = 4 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4213 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:4214 #, no-wrap msgid "`*` (Any variable)" msgstr "`*` (Любая переменная)" #. type: delimited block = 4 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4217 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:4219 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:4220 #, no-wrap msgid "Options dependencies" msgstr "Зависимости параметров" #. type: delimited block = 4 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4223 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:4224 #, no-wrap msgid "Options conflicts" msgstr "Конфликты опций" #. type: delimited block = 4 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4227 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:4228 #, no-wrap msgid "Build targets" msgstr "Цели сборки" #. type: delimited block = 4 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4231 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:4233 #, no-wrap msgid "`OPTIONS_SUB`" msgstr "`OPTIONS_SUB`" #. type: delimited block = 4 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4236 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:4241 #, 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:4244 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4283 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4319 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4356 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4391 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4428 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4464 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4498 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4528 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4560 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4592 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4621 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4774 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4847 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4924 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:5014 msgid "is equivalent to:" msgstr "эквивалентно:" #. type: delimited block . 4 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4248 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4287 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4323 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4395 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4432 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4468 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4502 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4532 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4564 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4596 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4625 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4851 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4928 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:5005 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:5018 #, 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:4250 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4289 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4325 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4362 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4397 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4434 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4470 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4504 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4534 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4566 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4598 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4627 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4659 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4716 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4782 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4853 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4930 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:5020 #, 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:4258 #, 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:4264 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:4267 #, 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:4273 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:4280 #, 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:4297 #, 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:4300 #, no-wrap msgid "`CONFIGURE_ARGS` Helpers" msgstr "Помощники `CONFIGURE_ARGS`" #. type: Title ===== #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4303 #, no-wrap msgid "`OPT_CONFIGURE_ENABLE`" msgstr "`OPT_CONFIGURE_ENABLE`" #. type: Plain text #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4310 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:4316 #, 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:4331 #, 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:4337 #, 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:4340 #, no-wrap msgid "`OPT_CONFIGURE_WITH`" msgstr "`OPT_CONFIGURE_WITH`" #. type: Plain text #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4347 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:4353 #, 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:4368 #, 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:4374 #, 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:4377 #, 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:4382 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:4388 #, 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:4403 #, 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:4409 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:4412 #, no-wrap msgid "`CMAKE_ARGS` Helpers" msgstr "Помощники `CMAKE_ARGS`" #. type: Title ===== #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4415 #, 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:4419 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:4425 #, 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:4440 #, 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:4446 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:4449 #, 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:4455 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:4461 #, 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:4478 #, 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:4481 #, no-wrap msgid "`MESON_ARGS` Helpers" msgstr "Помощники `MESON_ARGS`" #. type: Title ===== #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4484 #, 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:4489 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:4495 #, 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:4510 #, 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:4513 #, 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:4519 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:4525 #, 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:4542 #, 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:4545 #, 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:4551 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:4557 #, 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:4574 #, 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:4577 #, 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:4583 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:4589 #, 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:4604 #, 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:4607 #, 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:4612 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:4618 #, 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:4633 #, 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:4636 #, no-wrap msgid "`OPT_IMPLIES`" msgstr "`OPT_IMPLIES`" #. type: Plain text #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4639 msgid "Provides a way to add dependencies between options." msgstr "Предоставляет способ добавления зависимостей между опциями." #. type: Plain text #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4642 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:4647 #, 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:4650 #, 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:4653 msgid "Is equivalent to:" msgstr "Эквивалентно:" #. type: delimited block . 4 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4665 #, 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:4671 #, 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:4674 #, no-wrap msgid "Simple Use of `OPT_IMPLIES`" msgstr "Простое использование `OPT_IMPLIES`" #. type: delimited block = 4 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4679 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:4684 #, 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:4689 #, 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:4694 #, 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:4697 msgid "Provides a way to add conflicts between options." msgstr "Предоставляет способ добавления конфликтов между опциями." #. type: delimited block = 4 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4701 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:4707 #, 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:4710 msgid "Is roughly equivalent to:" msgstr "Примерно эквивалентно:" #. type: delimited block . 4 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4720 #, 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:4723 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:4725 #, no-wrap msgid "Simple Use of `OPT_PREVENTS`" msgstr "Простое использование `OPT_PREVENTS`" #. type: delimited block = 4 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4731 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:4735 #, 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:4738 #, 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:4743 #, 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:4748 #, 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:4751 msgid "Provides a generic way to set and append to variables." msgstr "" "Предоставляет универсальный способ установки и добавления значений " "переменным." #. type: Plain text #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4756 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:4761 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:4769 #, 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:4771 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4780 #, 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:4786 #, 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:4790 #, 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:4796 #, 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:4801 msgid "Values containing whitespace must be enclosed in quotes:" msgstr "Значения, содержащие пробелы, должны быть заключены в кавычки:" #. type: delimited block . 4 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4805 #, 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:4811 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:4814 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:4818 #, 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:4823 #, 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:4826 msgid "For any of these dependency types:" msgstr "Для любого из этих типов зависимостей:" #. type: delimited block = 4 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4828 msgid "`PKG_DEPENDS`" msgstr "`PKG_DEPENDS`" #. type: delimited block = 4 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4838 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:4844 #, 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:4859 #, 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:4862 #, 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:4865 msgid "For any of these variables:" msgstr "Для любой из этих переменных:" #. type: Plain text #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4867 msgid "`ALL_TARGET`" msgstr "`ALL_TARGET`" #. type: Plain text #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4868 msgid "`BINARY_ALIAS`" msgstr "`BINARY_ALIAS`" #. type: Plain text #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4869 msgid "`BROKEN`" msgstr "`BROKEN`" #. type: Plain text #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4871 msgid "`CFLAGS`" msgstr "`CFLAGS`" #. type: Plain text #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4872 msgid "`CONFIGURE_ENV`" msgstr "`CONFIGURE_ENV`" #. type: Labeled list #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4873 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:5112 #, no-wrap msgid "`CONFLICTS`" msgstr "`CONFLICTS`" #. type: Labeled list #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4874 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:5107 #, no-wrap msgid "`CONFLICTS_BUILD`" msgstr "`CONFLICTS_BUILD`" #. type: Labeled list #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4875 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:5102 #, no-wrap msgid "`CONFLICTS_INSTALL`" msgstr "`CONFLICTS_INSTALL`" #. type: Plain text #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4876 msgid "`CPPFLAGS`" msgstr "`CPPFLAGS`" #. type: Plain text #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4877 msgid "`CXXFLAGS`" msgstr "`CXXFLAGS`" #. type: Plain text #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4878 msgid "`DESKTOP_ENTRIES`" msgstr "`DESKTOP_ENTRIES`" #. type: Plain text #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4881 msgid "`EXTRA_PATCHES`" msgstr "`EXTRA_PATCHES`" #. type: Plain text #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4893 msgid "`IGNORE`" msgstr "`IGNORE`" #. type: Plain text #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4894 msgid "`INFO`" msgstr "`INFO`" #. type: Plain text #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4895 msgid "`INSTALL_TARGET`" msgstr "`INSTALL_TARGET`" #. type: Plain text #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4896 msgid "`LDFLAGS`" msgstr "`LDFLAGS`" #. type: Plain text #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4897 msgid "`LIBS`" msgstr "`LIBS`" #. type: Plain text #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4898 msgid "`MAKE_ARGS`" msgstr "`MAKE_ARGS`" #. type: Plain text #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4899 msgid "`MAKE_ENV`" msgstr "`MAKE_ENV`" #. type: Plain text #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4902 msgid "`PATCH_SITES`" msgstr "`PATCH_SITES`" #. type: Plain text #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4903 msgid "`PLIST_DIRS`" msgstr "`PLIST_DIRS`" #. type: Plain text #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4904 msgid "`PLIST_FILES`" msgstr "`PLIST_FILES`" #. type: Plain text #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4905 msgid "`PLIST_SUB`" msgstr "`PLIST_SUB`" #. type: Plain text #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4906 msgid "`PORTDOCS`" msgstr "`PORTDOCS`" #. type: Plain text #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4907 msgid "`PORTEXAMPLES`" msgstr "`PORTEXAMPLES`" #. type: Plain text #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4908 msgid "`SUB_FILES`" msgstr "`SUB_FILES`" #. type: Plain text #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4909 msgid "`SUB_LIST`" msgstr "`SUB_LIST`" #. type: Plain text #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4910 msgid "`TEST_TARGET`" msgstr "`TEST_TARGET`" #. type: Plain text #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4915 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:4921 #, 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:4936 #, 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:4943 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:4948 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:4950 msgid "With these lines in the [.filename]#Makefile#:" msgstr "С такими строками в [.filename]#Makefile#:" #. type: delimited block . 4 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4954 #, 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:4956 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4965 #, 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:4959 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:4961 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:4968 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:4971 #, 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:4974 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:4976 msgid "`pre-fetch`" msgstr "`pre-fetch`" #. type: delimited block = 4 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4977 msgid "`do-fetch`" msgstr "`do-fetch`" #. type: delimited block = 4 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4978 msgid "`post-fetch`" msgstr "`post-fetch`" #. type: delimited block = 4 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4979 msgid "`pre-extract`" msgstr "`pre-extract`" #. type: delimited block = 4 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4980 msgid "`do-extract`" msgstr "`do-extract`" #. type: delimited block = 4 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4981 msgid "`post-extract`" msgstr "`post-extract`" #. type: delimited block = 4 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4982 msgid "`pre-patch`" msgstr "`pre-patch`" #. type: delimited block = 4 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4983 msgid "`do-patch`" msgstr "`do-patch`" #. type: delimited block = 4 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4984 msgid "`post-patch`" msgstr "`post-patch`" #. type: delimited block = 4 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4985 msgid "`pre-configure`" msgstr "`pre-configure`" #. type: delimited block = 4 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4986 msgid "`do-configure`" msgstr "`do-configure`" #. type: delimited block = 4 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4987 msgid "`post-configure`" msgstr "`post-configure`" #. type: delimited block = 4 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4988 msgid "`pre-build`" msgstr "`pre-build`" #. type: delimited block = 4 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4989 msgid "`do-build`" msgstr "`do-build`" #. type: delimited block = 4 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4990 msgid "`post-build`" msgstr "`post-build`" #. type: delimited block = 4 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4991 msgid "`pre-install`" msgstr "`pre-install`" #. type: delimited block = 4 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4992 msgid "`do-install`" msgstr "`do-install`" #. type: delimited block = 4 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4993 msgid "`post-install`" msgstr "`post-install`" #. type: delimited block = 4 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4994 msgid "`post-stage`" msgstr "`post-stage`" #. type: delimited block = 4 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4995 msgid "`pre-package`" msgstr "`pre-package`" #. type: delimited block = 4 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4996 msgid "`do-package`" msgstr "`do-package`" #. type: delimited block = 4 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:4997 msgid "`post-package`" msgstr "`post-package`" #. type: delimited block = 4 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:5001 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:5008 #, 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:5011 #, 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:5027 #, 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:5030 #, no-wrap msgid "Specifying the Working Directory" msgstr "Указание рабочего каталога" #. type: Plain text #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:5035 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:5040 #, 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:5043 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:5045 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:5047 #, no-wrap msgid "`WRKSRC`" msgstr "`WRKSRC`" #. type: Plain text #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:5051 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:5055 #, 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:5058 msgid "or possibly" msgstr "или можно" #. type: delimited block . 4 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:5062 #, 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:5065 #, no-wrap msgid "`WRKSRC_SUBDIR`" msgstr "`WRKSRC_SUBDIR`" #. type: Plain text #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:5068 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:5072 #, no-wrap msgid "WRKSRC_SUBDIR=\tsrc\n" msgstr "WRKSRC_SUBDIR=\tsrc\n" #. type: Title === #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:5075 #, no-wrap msgid "`NO_WRKSUBDIR`" msgstr "`NO_WRKSUBDIR`" #. type: Plain text #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:5078 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:5082 #, 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:5087 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:5090 #, no-wrap msgid "Conflict Handling" msgstr "Обработка конфликтов" #. type: Plain text #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:5093 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:5097 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:5100 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:5105 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:5110 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:5115 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:5119 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:5122 #, 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:5125 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:5128 #, 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:5131 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:5134 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:5136 #, no-wrap msgid "Basic usage of `CONFLICTS*`" msgstr "Простой пример использования `CONFLICTS*`" #. type: delimited block = 4 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:5142 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:5149 #, 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:5152 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:5156 #, no-wrap msgid "CONFLICTS_INSTALL=\tbind910\n" msgstr "CONFLICTS_INSTALL=\tbind910\n" #. type: Plain text #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:5159 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:5163 #, 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:5170 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:5172 #, no-wrap msgid "Using `CONFLICTS*` With Globs." msgstr "Использование `CONFLICTS*` с шаблонами имён файлов." #. type: Plain text #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:5177 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:5179 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:5185 #, 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:5188 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:5190 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:5194 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:5198 #, 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:5201 #, no-wrap msgid "Installing Files" msgstr "Установка файлов" #. type: delimited block = 4 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:5208 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:5211 #, no-wrap msgid "`INSTALL_*` Macros" msgstr "Макросы `INSTALL_*`" #. type: Plain text #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:5218 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:5220 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:5221 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:5222 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:5223 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:5224 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:5225 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:5227 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:5231 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:5234 #, no-wrap msgid "Stripping Binaries and Shared Libraries" msgstr "Удаление символов из бинарных файлов и разделяемых библиотек" #. type: Plain text #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:5239 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:5242 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:5247 #, 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:5250 msgid "When multiple files need to be stripped:" msgstr "Когда необходимо удалить отладочную информацию из нескольких файлов:" #. type: delimited block . 4 #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:5257 #, 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:5262 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:5266 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:5268 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:5270 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:5273 #, no-wrap msgid "Installing a Whole Tree of Files" msgstr "Установка целого дерева файлов" #. type: Plain text #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:5278 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:5283 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:5289 #, 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:5292 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:5298 #, 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:5301 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:5304 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:5311 #, 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:5317 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:5319 #, no-wrap msgid "Install Additional Documentation" msgstr "Установка дополнительной документации" #. type: Plain text #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:5323 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:5328 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:5331 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:5337 #, 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:5341 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:5343 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:5345 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:5346 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:5347 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:5348 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:5349 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:5350 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:5356 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:5362 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:5364 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:5369 #, 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:5378 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:5382 #, 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:5387 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:5391 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:5394 #, no-wrap msgid "Subdirectories Under `PREFIX`" msgstr "Подкаталоги в `PREFIX`" #. type: Plain text #: documentation/content/en/books/porters-handbook/makefiles/_index.adoc:5403 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:5405 #, 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:5408 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:5410 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:5412 #, 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:5417 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:5419 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:5425 #, 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:5430 #, 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:5435 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:5441 #, 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:5444 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:5451 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`, нельзя использовать для создания бинарного псевдонима, так " "как тестовые зависимости, указанные таким образом, обрабатываются после " "создания бинарных псевдонимов." #, 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" #, no-wrap #~ msgid "<.>" #~ msgstr "<.>" #~ msgid "% pkg version -t 1.2 1.2.0" #~ msgstr "% pkg version -t 1.2 1.2.0" #, no-wrap #~ msgid "`CHEESESHOP`" #~ msgstr "`CHEESESHOP`"